如何获取当前绑定的顶点数组对象?
Posted
技术标签:
【中文标题】如何获取当前绑定的顶点数组对象?【英文标题】:How to get the currently bound Vertex Array Object? 【发布时间】:2013-06-05 21:32:20 【问题描述】:如何获取当前绑定的顶点数组对象的名称?
我查看了手册,但找不到与 glGet() 一起使用的枚举。
【问题讨论】:
你想做什么?通常你会自己绑定它以绘制它。当你这样做的时候,你为什么不能把它存储起来? @AndreasHaferburg 我想绑定一个VAO,但是用完之后,我想重新绑定之前绑定的VAO。 我建议改用堆栈。但我仍然不确定你为什么需要它。假设你调用一个函数,你用一个临时 VAO 做某事,你不能在函数返回时绑定原始 VAO(即使用调用堆栈作为你的 VAO 堆栈)吗? @AndreasHaferburg:这非常脆弱。它让调用者有责任保证全局状态的安全。这样,每个函数都有责任维护全局状态的完整性。如果它改变了一些全局状态,那么最好知道该函数,因此该函数应该修复它。无论如何,根据一些设计理念。 【参考方案1】:试试glGetIntegerv()
和GL_VERTEX_ARRAY_BINDING
。
参见OpenGL 4.3 spec 中的第 652 页(“表 23.8。顶点数组数据(不在顶点数组对象中)”)。
如果您之前没有进行过规范,请注意它们会省略函数中的 gl
前缀和枚举中的 GL_
前缀。
【讨论】:
以上是关于如何获取当前绑定的顶点数组对象?的主要内容,如果未能解决你的问题,请参考以下文章