在 Linux 上的上下文之间共享 OpenGL 对象

Posted

技术标签:

【中文标题】在 Linux 上的上下文之间共享 OpenGL 对象【英文标题】:Sharing OpenGL objects between contexts on Linux 【发布时间】:2013-09-23 15:26:00 【问题描述】:

为了在不同的上下文(可能在不同的线程中运行)之间共享 OpenGL 对象,我们在 Windows 上使用 wglShareLists()。它是如何在 Linux 上完成的?有 glx 的 API 来做这种事情吗?

【问题讨论】:

【参考方案1】:

要在 GLX 中执行此操作,您需要在调用 glXCreateContext (...)glXCreateNewContext (...) 时将句柄传递给要与之共享资源的上下文。真的就这么简单,在 GLX 中并没有为此目的提供一个特殊的 API 函数,而是内置在用于创建上下文的函数中。

【讨论】:

真的吗?没想到这么简单! 是的,忽略该手册页中glXCreateNewContext (...) 的部分,其中他们重复了单词share_list,而应该说direct。后来有无数的错误报告,很明显没有人关心 GLX 规范的准确性:P 好吧,这真的太晚了))但是上述方法都不适用于现代OpenGL。 glXCreateContextAttribsARB 确实

以上是关于在 Linux 上的上下文之间共享 OpenGL 对象的主要内容,如果未能解决你的问题,请参考以下文章

使用 GLFW3 在 OpenGL 上下文之间共享纹理不起作用

是否可以在 Qt 的***窗口之间使用相同的 OpenGL 上下文?

glxCreateContextAttribsARB 和 OpenGL 函数在 Linux 上的动态加载

QtOpenGL - 共享 OpenGL 上下文

跨平台方式识别当前opengl渲染上下文?

使用 ubuntu 在不同的显示器上共享 opengl 上下文