在 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 上下文?