在 Linux 上,如何将桌面捕获到 OpenGL 纹理?
Posted
技术标签:
【中文标题】在 Linux 上,如何将桌面捕获到 OpenGL 纹理?【英文标题】:On Linux how can I capture the desktop to an OpenGL texture? 【发布时间】:2013-07-10 21:58:26 【问题描述】:我正在编写一个跨平台开源 Oculus Rift 桌面查看器。我决定从 Linux 开始,因为我更喜欢在它上进行开发。我已经让纹理变形工作了,但现在我需要将桌面捕获到 OpenGL 纹理。还有其他问题我不完全确定如何解决,例如在捕获除我之外的每个窗口时将扭曲的桌面渲染到我的窗口。任何线索我会怎么做?
【问题讨论】:
【参考方案1】:我认为您最好的做法实际上是编写一个成熟的合成器。
有GLX_texture_from_pixmap
扩展,它允许您将任何与像素图兼容的 X11 可绘制对象获取到 OpenGL 纹理中。首先,只需将根窗口(像素图)拉到 OpenGL 纹理中就足够了。稍后您可能希望使用 Composite 扩展将窗口重定向到屏幕外渲染,并在 3D 空间中将它们合成为 Occulus Rift 中的立体图片。
【讨论】:
是的,我正在考虑这个问题。那里没有多少好的轻量级 OpenGL 合成器,所以它可能有两个目的。我想我会尝试分叉 dcompmgr。以上是关于在 Linux 上,如何将桌面捕获到 OpenGL 纹理?的主要内容,如果未能解决你的问题,请参考以下文章
linux下如何将GNOME Desktop桌面的信号通过x11转发到当前设备的桌面上?
opengl 应用程序从套接字连接监听/接收数据? [关闭]