linux 图形界面

linux系统图形界面框架

https://baike.baidu.com/item/xorg/153425

xserver 和x client启动过程

startx 的默认启动过程为: startx 调用并将系统文件 /etc/X11/xinit/xinitrc和 /etc/X11/xinit/xserverrc 作为参数传给 xinit , xinit 就会先执行系统文件/etc/X11/xinit/xserverrc 以启动 X Server ,然后执行 /etc/X11/xinit/xinitrc,而 xinitrc 则会执行脚本 /etc/X11/Xsession ,而 Xsession 则会按顺序调用执行/etc/X11/Xsession.d 目录下的文件,从而最终调用了 gnome-session 这个用于 启动 GNOME桌面环境的程序

图形加速原理简介

历史上对2D 和3D加速已经做了区分,2D加速主要使用的是XAA结构,3D加速主要是通过DRM(DirectRendering Manage)提供.而EXA提供了比XAA更好集成XRender的结构,同时也提高了XAA的2D加速效果。
EXA采用的方法是通过实现对OpenGL的加速以实现同时对2D,3D图像的加速,这样2D图像就可以看作是3D图像的一个子集。

xserver主分支代码解析

a)xserver初始化
b)xserver循环处理client消息
c)xserver退出

xserver、xclient协议简介

由上文对Dispatch函数的分析可以看出,xserver对client的处理主要是三步:
(1)获得事件信息
nready =WaitForSomething(clientReady);
(2)获得操作号
result =ReadRequestFromClient(client);
(3)根据操作号处理
result = (*client->requestVector[MAJOROP])(client);

也就是说Client与server交互时,先按照固定的协议初始化Connector,并且告诉xserver其适合的协议。
然后server按照该协议解析client发送过来的操作号。

一个基于Xlib的简单例子解析

Xlib是对X协议的的一个简单的封装,可以让程序员不用了解细节而编写图形相关程序。实际上程序员直接调用Xlib的很少,更多使用的是
GTK+ ,QT等图形库。这些又是基于Xlib的图形库

radeon驱动初始化代码解析

发布了153 篇原创文章 · 获赞 51 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/stanwuc/article/details/104060510