Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何开始编写合成WM?_Linux_X11_Clutter_Compositing - Fatal编程技术网

Linux 如何开始编写合成WM?

Linux 如何开始编写合成WM?,linux,x11,clutter,compositing,Linux,X11,Clutter,Compositing,我想写一个基本的硬件加速窗口管理器,所以我一直在寻找一些关于如何开始的文档,但我只找到了,它使用了一个过时的杂乱版本,并且不会使用当前可用的任何版本构建。关于如何做到这一点,还有其他好的资源吗?或者,有一个真正的简单合成WM来查看原始演示合成管理器的来源吗?我建议您了解底层的X扩展 如果您使用OpenGL进行硬件加速渲染,则需要从_pixmap扩展阅读EXT\u texture\u,以避免通过用户空间复制窗口内容。该扩展允许您对这些拷贝使用硬件加速的BLIT 您可能还对允许同步到垂直回溯的无撕裂

我想写一个基本的硬件加速窗口管理器,所以我一直在寻找一些关于如何开始的文档,但我只找到了,它使用了一个过时的杂乱版本,并且不会使用当前可用的任何版本构建。关于如何做到这一点,还有其他好的资源吗?或者,有一个真正的简单合成WM来查看原始演示合成管理器的来源吗?

我建议您了解底层的X扩展

如果您使用OpenGL进行硬件加速渲染,则需要从_pixmap扩展阅读
EXT\u texture\u,以避免通过用户空间复制窗口内容。该扩展允许您对这些拷贝使用硬件加速的BLIT


您可能还对允许同步到垂直回溯的无撕裂渲染的规范感兴趣。

您的问题有两个部分:1)如何编写WM 2)如何编写复合管理器

有助于理解第二部分的一些链接(除xcompmgr源代码外):

  • (使用Qt,但非常通用且级别较低)
窗口管理器,“第一部分”:

  • 我在JavaScript中有简单的~100 loc wm:
  • 另一个极简主义wm(在C中),作为参考开始很好:
  • 最重要的关键字:
    子结构重定向
    事件掩码。一点文档