在Linux上,如何将桌面捕捉到OpenGL纹理

On Linux how can I capture the desktop to an OpenGL texture?

本文关键字:OpenGL 纹理 桌面 Linux      更新时间:2023-10-16

我正在编写一个跨平台开源Oculus Rift桌面查看器。我决定从Linux开始,因为我更喜欢在它上开发。我已经完成了纹理扭曲,但现在我需要将桌面捕捉到OpenGL纹理。还有其他问题我不完全确定如何解决,比如在捕捉除我的窗口外的所有窗口时,将扭曲的桌面渲染到我的窗口。知道我该怎么做吗?

我认为你最好的做法实际上是写一个成熟的合成器。

有一个GLX_texture_from_pixmap扩展,它允许您将任何与X11兼容的像素图绘制到OpenGL纹理中。首先,只需将根窗口(pixmap)按原样拉入OpenGL纹理即可。稍后,您可能需要使用Composite扩展将窗口重定向到屏幕外渲染,并将它们在3D空间中合成为Occlus Rift中的立体图片。