我正在尝试构建在不同进程中运行的 2 个应用程序。一个应用程序将显示来自摄像机(服务器)的实时视频,另一个应用程序将在该视频之上覆盖 UI(客户端)。该解决方案需要低延迟,因此我想在不通过操作系统合成器的情况下渲染两者。我试图实现的解决方案涉及创建一个共享的 OpenGL 上下文或纹理,以便 UI 可以将其部分渲染到一些屏幕外缓冲区/纹理。在渲染每个实时图像帧后,服务器可以从屏幕外缓冲区/纹理中获取信息并将其渲染在顶部。这样就不会因为进程同步而增加延迟。如果准备好,服务器将从 UI 中获取最新的图像。如果它没有准备好,它不应该等待它,而是使用以前的图像。
如何在进程之间传递纹理或上下文?CreateContext 函数可以获取另一个上下文的指针并使其共享,但据我所知,该地址在进程空间之外无效。