2010-06-02 65 views
1

我想知道在C/C++中是否有可能启动应用程序并获取其标准视频输出?从另一个应用程序抓取应用程序的OpenGL输出

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

我在Linux下开发。

回答

2

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

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

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

相关问题