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

发布于 2024-09-03 12:33:32 字数 132 浏览 7 评论 0原文

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

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

我是在Linux下开发的。

I would like to know if it's possible, in C/C++, to launch an application and grab its standard video output?

The goal of this would be to grab the buffer of an application, and use it as a texture for a grid of vertex with special texture coordinate (in order to project it in a FullDome)?

I'm developing under Linux.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小女人ら 2024-09-10 12:33:32

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

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

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

Theoretically, it's possible. Is the other application using OpenGL? Or is just any X11 application?

If is just an X11 app, you need to do what a compositing manager does, which is use the COMPOSITE X extension to get window contents, and then process them.

If is just a OpenGL app, and you can modify it, you can use a FBO to draw everything to a texture, and use shared memory (SHM) to share the texture data with the other application.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文