2012-07-31 148 views
0

我想寫一個合成器,就像Compiz一樣,但是具有不同的圖形效果。不過,我被困在第一步,這是我無法找到如何讓X渲染窗口到紋理而不是幀緩衝區。有關從哪裏開始的建議?如何讓X渲染成OpenGL紋理?

+0

據我所知,除非您真的*在* X11,你沒有。也就是說,你必須在非常低的層面上做到這一點,這就是爲什麼這種事情不是以每個應用程序爲基礎完成的。 – 2012-07-31 22:33:04

回答

3

X11構圖如下。

  1. 您將窗口重定向到屏幕外區域。混合擴展對你使用損傷擴展,以找出哪些窗戶沒有改變它們的內容
  2. 在合成器使用GLX_EXT_texture_from_pixmap延伸到每個窗口的內容提交到相應的OpenGL紋理這個
  3. 的功能。
  4. 您將紋理繪製到合成圖層窗口中;複合擴展爲您提供了一個特殊的屏幕層,位於常規窗口層和屏幕保護層之間,用於創建窗口組合。