c++ - 在 Linux 上如何将桌面捕获为 OpenGL 纹理?

标签 c++ linux opengl oculus

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

最佳答案

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

GLX_texture_from_pixmap 扩展,它允许您将任何与像素图兼容的 X11 可绘制对象源到 OpenGL 纹理中。首先,只需将根窗口(像素图)拉入 OpenGL 纹理中就足够了。稍后您可能想要使用 Composite 扩展将窗口重定向到离屏渲染,并将它们在 3D 空间中合成为 Occulus Rift 中的立体图片。

关于c++ - 在 Linux 上如何将桌面捕获为 OpenGL 纹理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17581657/

相关文章:

c++ - 关于qt读取文件内容

c++ - 字符串中的最后一个单词不反转

c++ - 模板化类构造函数中的 static_assert

php - 编译PHP,出现这些错误正常吗? (Linux-Debian-PHP5.3.3)

linux - 读取过程未正确显示数据

c++ - 实时视频捕捉?

linux - 更改进程的 nice 值在 Linux 中无效

c++ - OpenGL 鼠标跟踪(自由线)

opengl - 在进行纹理映射操作之前设置 GL 颜色有什么作用?

c++ - OpenGL:绘制多边形时,如果第一个顶点位于屏幕空间之外怎么办(三角扇)