Basic Info for Wayland

Below content come from http://baike.baidu.com/view/4648682.htm


Wayland是一个简单的“显示服务器”(Display Server)

Wayland只是一个协议(Protocol),就像X Window当前的协议――X11一样,它只定义了如何与内核通讯、如何与Client通讯,具体的策略,依然是交给开发者自己。所以Wayland依然 是贯彻“提供机制,而非策略”的Unix程序。

Wayland复用了所有Linux内核的图形、输入输出技术:KMS、evdev,因此已支持的驱动可以直接拿来用。

Wayland没有传统的Server/Client的模式,取而代之的是:Compositor/Client,这不仅仅是换一个名称而已,后面会讲到具体区别。

原理:

内核收到了鼠标发出的信息,经过处理后转发到了Wayland Compositor,就像之前发往X Server一样。

Compositor收到消息后,立马能知道哪个窗口该收到这个消息,因为它就是总控制中心,它掌握窗口的层级关系、动画效果,因此它知道该坐标产生的鼠标点击信息应该发送给谁,就这样,Compositor将鼠标的点击信息发送给了Firefox。

Firefox收到了消息,这时如果是在X Window下的话,Firefox会向X Server请求绘制按钮被按下的效果。然而在Wayland里,Firefox可以自行进行绘制而不需要再请求Compositor的许可!这就是传说中的:直接渲染机制(Direct Render)!Wayland不管Client的绘制工作,整个过程变得十分简单而且高效!当Firefox自行完成了按钮状态的绘制后,它只需要通知Compositor,某块区域已经被更新了。

Compositor收到Firefox发来的信息的,再重新合成那块更新的那块区域,将最终桌面效果呈现给用户。这个过程主要是跟内核、显卡驱动打交道了。

wKiom1O0wPSAeK_YAAJrFe_lYmc570.jpg

Wayland compositor allow multiple applications to show graphical contents on screen simultanously

The communication between client applications and compositor is done via the wayland protocol

你可能感兴趣的:(Wayland)