我希望了解Linux窗口管理器并构建自己的窗口管理器。我有两个要求:3D支持和与现有应用程序的良好兼容性/性能。
是否有任何窗口管理器符合这些标准且重量轻,我可以使用?
如果没有,我自己需要考虑什么来实施3D支持?我发现默认情况下Xlib根本不支持3D窗口。
编辑:Xlib提到了XGetGeometry,它可以获得一个windows pixmap。然后我可以使用OpenGL自己显示它,但是,这是最有效的方法吗?
答案 0 :(得分:2)
是否有任何窗口管理器符合这些标准且重量轻,我可以使用?
你可以看看Compiz就是这么做的。它还有一个插件架构。但是要注意基于X11的合成的缺陷,X11本身的困境以及Linux图形社区的大部分已经喝醉了Wayland Kool-Aid。
答案 1 :(得分:1)
您可能需要查看Wayland。简而言之,Wayland为每个客户提供了一个矩形区域来渲染内容,然后通过合成这些区域在屏幕上构建显示。
源代码应该为您提供一些如何将客户端的所有输出重定向到纹理缓冲区的建议。