在opengl上下文中设置纹理参数[已关闭]

7gcisfzg  于 2023-10-18  发布在  其他
关注(0)|答案(1)|浏览(112)

已关闭,此问题需要details or clarity。它目前不接受回答。
**想改善这个问题吗?**通过editing this post添加详细信息并澄清问题。

上个月关门了。
Improve this question
这是一个关于SO answer的后续问题。
如果我有以下设置

eglMakeCurrent(,,,contextA); 
glCreateTextures(,texHandles);
...

eglMakeCurrent(,,,contextB);
glTextureParameterf(texHandles[0],,);

其中contextAcontextB是共享上下文。假设上面代码片段中的所有内容都按照OpenGL规范正确设置。由于texture对象不是容器对象,设置texture参数的调用是否成功?

9rbhqvlz

9rbhqvlz1#

对象状态的变化在上下文之间传播,雅阁标准第5.3节中的规则。这些都是相当详细和复杂的。但一般来说,传播这种变化需要两件事:确保函数的设置状态已经完成执行,并在新的上下文中显式绑定对象(直接或间接)。
因此,为了在上下文B中使用对象,必须首先确保在上下文A中完成创建操作。仅仅一个CPU互斥是不够的;你需要使用glFinish或者在上下文A(发送上下文)中等待同步对象。这个命令必须在上下文B使用它之前“发生”。
要访问对象的存储状态的更新,上下文B必须绑定该对象(在上下文A的上述等待完成之后)。DSA函数不充当绑定操作,因此即使您想使用DSA,也必须首先绑定对象的。

相关问题