2016-09-08 57 views
3

似乎这个问题很少见。只是做了一些在线搜索,但无法找到答案。是否可以检查两个现有GL上下文是否共享资源?

+0

这很少见,因为一般来说,除非用户知道它们来自哪里,否则用户没有一对OpenGL内容。由于大多数用户创建他们的上下文或告诉其他人这样做。 –

+0

我想我的情况也很少见。我拥有(编译和链接)GL背景下的一堆着色器(比如A)。一些着色器可以被各种其他客户端GL上下文使用。不幸的是,我不知道每个客户端GL上下文是否与A共享,因为wglShareLists()是由客户端代码调用的。所以,我不知道客户端是否可以重新使用编译链接的着色器。 – lien

+1

如果你的客户创建了上下文A,那么你的客户也必须创建上下文B.因此,你的客户应该*告诉你*两个上下文是否在共享组中,因为你的客户是知道它的人。 –

回答

0

上下文共享是由GLX,WGL,EGL或类似者提供的可选功能。严格地说,OpenGL无法查询有关共享上下文的任何内容,因为它不需要任何共享上下文的接口。规范确实提到了共享上下文中的某些行为,但这是关于它的。

对于GLX,WGL和EGL,没有办法查询上下文是否共享。

Reto的评论建议在一种情况下做某件事,看看它是否对另一方有影响。

如果您可以控制构建环境,则可以“钩住”用于共享上下文的操作,注册事件,然后调用实际操作。

相关问题