X11/Wayland开发入门系列教程索引

公司客户某研究所会经常使用VAPS XT开发仪表显示软件,并运行在Linux上(国产化要求的中标、麒麟等国产Linux发行版)。随着项目的积累,程序会非常庞大,现在单独的可执行程序已经超过2G。

给我们公司的一个项目是基于Linux的窗口管理器,将程序分割为小程序,每个小程序占用独立的窗口。每个窗口中的程序运行是相互独立,以确保其中一个程序崩溃而不影响其他程序。窗口管理器中的每个窗口可以共享鼠标等设备操作。(考虑到项目复杂度,公司项目负责人并没有接,本系列是技术探索)

本系列会将开发中用到的技术抽象出来(国企保密性要求),并记录以便后续使用。

Wayland开发有两个方面:Wayland和混合器。Wayland决定显示什么,而混合器决定怎么显示。

Wayland与GPU驱动配合,他们要有相同的缓冲器API,GBM除了NVIDIA都支持,EGLStreams除了NVIDIA都不支持。

Wayland

首页:https://wayland.freedesktop.org/

Wayland是X更简单的替代品,更容易开发和维护。GNOME和KDE预计将被移植到它上。

Wayland是一个合成器与客户端对话的协议,以及该协议的C库实现。合成器可以是运行在Linux内核modeset和evdev输入设备上的独立显示服务器、X应用程序或wayland客户端本身。客户端可以是传统应用程序、X服务器(无根或全屏幕)或其他显示服务器。

Wayland项目的一部分也是Wayland合成器的Weston参考实现。Weston可以作为X客户端或在Linux KMS下运行,并附带一些演示客户端。Weston合成器是一个最小和快速的合成器,适用于许多嵌入式和移动用例。

Wayland协议(Wayland-Protocol)API参考手册:https://wayland.freedesktop.org/docs/html/

API介绍

安装配置

待添加

窗口标题栏
窗口显示基本OpenGL绘制的图像
窗口右键窗口
窗口右键菜单
窗口右键菜单处理
窗口的子窗口
窗口的子程序
窗口的按钮
窗口的按钮操作