从另一个应用程序中获取应用程序的OpenGL输出

时间:2010-06-02 15:14:26

标签: c++ opengl video-capture screen-grab

我想知道在C / C ++中是否可以启动应用程序并获取其标准视频输出?

这样做的目的是获取应用程序的缓冲区,并将其用作具有特殊纹理坐标的顶点网格的纹理(以便在FullDome中投影)?

我正在Linux下开发。

1 个答案:

答案 0 :(得分:2)

理论上,它是可能的。是使用OpenGL的其他应用程序吗?或者只是任何X11应用程序?

如果只是一个X11应用程序,您需要执行合成管理器所做的事情,即使用COMPOSITE X扩展来获取窗口内容,然后处理它们。

如果只是一个OpenGL应用程序,您可以修改它,您可以使用FBO将所有内容绘制到纹理,并使用共享内存(SHM)与其他应用程序共享纹理数据。