glEnable和glEnableClientState有什么区别?每当我需要一个模式设置/未设置时,我必须查看引用以了解哪些将接受它。 Os有什么一般规则可以说明哪种模式适用于哪种模式?
答案 0 :(得分:7)
除了tibur的回答,实际上glEnableClientState
和glDisableClientState
的唯一用途是启用/禁用内置固定功能属性数组(如GL_VERTEX_ARRAY
,{{1} },...)。对于所有其他州,您使用GL_NORMAL_ARRAY
和glEnable
(或glDisable
和glEnableVertexAttribArray
作为通用顶点着色器属性。)
答案 1 :(得分:3)
glEnable
用于OpenGL ARB确定的状态集表示内部驱动程序状态。 glEnableClientState
用于表示您更直接控制的信息的状态。存在启用/禁用的唯一客户端状态是旧的顶点数组状态。那些被glEnable/DisableVertexAttribArray
取代。
这种区别实际上毫无意义,因为驱动程序仍然管理所有这种状态。
答案 2 :(得分:2)
glEnable
是服务器端,而glEnableClientState
是客户端。在服务器端考虑CPU和客户端作为GPU。在全球范围内,顶点数组只是客户端。