我已经使用OpenGL很长一段时间了,但我总是对它的状态管理系统感到困惑。特别是我遇到的问题是确切地了解存储特定状态的对象或目标。
例如1:指定纹理参数。这些参数是与纹理本身或纹理单元一起存储的吗?将纹理与不同纹理单元绑定会移动这些参数设置吗?
例如2:glVertexAttribPointer - 究竟与之相关的是 - 它是活动着色器程序,绑定数据缓冲区,ES上下文本身?如果绑定不同的顶点缓冲区对象,是否需要再次调用glVertexAttribPointer?
所以我不是要求上述问题的答案 - 我问这些答案是否写在某处,所以每次我使用新的东西时都不需要做整个试验和错误的事情。
答案 0 :(得分:3)
这些答案都写在OpenGL ES 2.0 specification(PDF链接)中。每个函数都说明了它所影响的状态,并且最后有一大堆表指定哪个状态是哪个对象的一部分,或者只是全局上下文的一部分。