不同OpenGL环境中的glGenBuffers()对象名称

mpbci0fu  于 2022-11-04  发布在  其他
关注(0)|答案(1)|浏览(147)

假设有一个GUI程序有两个窗口,每个窗口都有自己的OpenGL上下文,只有一个线程。
在某些时候,我们希望在第一个和第二个窗口中渲染内容,因此我们为每个OpenGL上下文分配一个缓冲区,其中包含glGenBuffers(1, &buffer_)(以及其他内容)。
我的问题是,glGenBuffers()函数是全局返回唯一的对象名称,还是针对每个OpenGL上下文返回本地对象名称?换句话说,这两个OpenGL上下文是否可以具有glGenBuffers()提供的相同对象名称?当然,除了object name == 0,这是一个特殊的对象名称。
如果它们可以,这是否意味着它们共享此对象名称?如果其中一个OpenGL上下文按glDeleteBuffers(1, &buffer_)取消分配对象,会发生什么?

eagi6jfj

eagi6jfj1#

取决于上下文是否在同一共享组中。
请参见OpenGL 4.6 Core Profile规范的第5章“共享对象和多个上下文”。

相关问题