我想写一个基本的硬件加速窗口管理器,所以我一直在寻找一些关于如何开始的文档,但我只找到了这个教程,它使用了一个过时版本的 Clutter 并且不会使用当前可用的任何版本构建。是否有任何其他好的资源可以做到这一点,或者,一个真正简单的合成 WM 来查看其来源?
问问题
3085 次
2 回答
9
您的问题有两个部分:1)如何编写 WM 2)如何编写复合管理器
一些有助于理解第二部分的链接(除了 xcompmgr 源):
- http://www.talisman.org/~erlkonig/misc/x11-composite-tutorial/(使用Qt,但非常通用和低级)
- https://github.com/gustavosbarreto/compmgr
- http://projects.mini-dweeb.org/projects/unagi
窗口管理器,“第一部分”:
- 我在 JavaScript 中有简单的 ~100 loc wm:https ://github.com/sidorares/node-x11/blob/master/examples/windowmanager/wm.js
- 另一个极简主义 wm(C 语言),可以作为参考:https ://code.google.com/p/winmalist/
- 最重要的关键字:
SubstructureRedirect
事件掩码。这里有一些文档
于 2012-11-12T06:03:12.187 回答
4
最初的演示合成管理器是xcompmgr,我建议使用它来了解底层 X 扩展。
如果您使用 OpenGL 进行硬件加速渲染,则需要阅读EXT_texture_from_pixmap
扩展程序以避免通过用户空间复制窗口内容。该扩展允许您对这些副本使用硬件加速的 blit。
您可能还会对_NET_WM_SYNC_REQUEST的规范感兴趣,以允许与垂直回溯同步的无撕裂渲染。
于 2012-11-07T01:34:03.380 回答