我试图理解合成器如何在X上工作(基本上是因为xcompmgr和cairo-compmgr都不能正确地为我的wm绘制阴影~~~)
我已经阅读了xcompmgr和cairo-compmgr的部分源代码,但我仍然不明白他们是如何做到的。
我想知道他们怎么知道阴影应该在哪里(好吧,窗户周围肯定,但阴影可能在其他窗口下,不需要绘制。),以及哪里(哪个)图层/窗口)他们绘制阴影。可能还有如何使用所有这些X扩展(以及用于什么)以及cairo-compmgr如何使用cairo来处理低级别的X.
从源代码中学习这些内容对我来说有点困难,因为很多内容(特别是X扩展)都很难记录。指出我应该注意的地方也会有所帮助。
答案 0 :(得分:3)
编码越简单,它就能发挥最佳效果。
你不需要黑魔法。
如果您想知道它是如何工作的,那就很简单:您必须使用'复合'X扩展。它启用了覆盖窗口,它是屏幕上唯一可见的窗口,然后你必须在其上绘制所有窗口,因为每个窗口都会有Pixmap
。
编辑: 如果您正在寻找文档,您可以使用linux手册( man 命令)和头文件,它们是主要的(也是最好的,也许是唯一真实的)文档源,如所有其他来源/网站都依赖于它们。