0

我正在尝试编写一个合成器,例如 Compiz,但具有不同的图形效果。不过,我被困在第一步,即我找不到如何让 X 将窗口渲染到纹理而不是帧缓冲区。关于从哪里开始的任何建议?

4

1 回答 1

3

X11 组成如下。

  1. 您将窗口重定向到屏幕外区域。复合扩展具有此功能
  2. 您使用损坏扩展来找出哪些窗口确实改变了它们的内容
  3. 在合成器中,您使用GLX_EXT_texture_from_pixmap扩展将每个窗口的内容提交到相应的 OpenGL 纹理中。
  4. 您将纹理绘制到合成层窗口中;Composite 扩展为您提供了一个特殊的屏幕层,位于常规窗口层和屏幕保护程序层之间,在其中创建窗口组合。
于 2012-07-31T23:32:41.277 回答