如何获取当前绑定的顶点数组对象?

7

如何获取当前绑定的顶点数组对象的名称?

我查看了手册,但没有找到可以与glGet()一起使用的枚举。


你想做什么?通常情况下,您需要自己绑定它以便进行绘制。为什么您不能在这样做时将其存储呢? - Andreas Haferburg
2
@AndreasHaferburg 我想绑定一个VAO,但是在使用完它之后,我想重新绑定之前绑定的VAO。 - bwroga
我建议使用一个栈代替。但我仍然不确定为什么你需要那个。假设你调用一个函数,在其中使用一个临时VAO进行某些操作,那你不能在函数返回时绑定原始VAO吗(即使用调用堆栈作为你的VAO栈)? - Andreas Haferburg
5
@AndreasHaferburg: 这非常脆弱。它把责任放在调用者身上,让其保护全局状态的安全性。这样,每个函数都有责任维护全局状态的完整性。如果某个函数更改了一些全局状态,那么最了解这种情况的应该是该函数本身,因此该函数应该修复这种状态。至少根据某些设计理念是这样的。 - Nicol Bolas
1个回答

12
尝试使用 glGetIntegerv()GL_VERTEX_ARRAY_BINDING。请参阅OpenGL 4.3规范第652页(“表23.8.顶点数组数据(不在顶点数组对象中)”)。
如果您以前没有研究过规范,请注意它们从函数中省略了gl前缀和枚举中的GL_前缀。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接