glEnable和glEnableClientState有什么区别?

时间:2011-10-14 19:00:10

标签: opengl

glEnable和glEnableClientState有什么区别?每当我需要一个模式设置/未设置时,我必须查看引用以了解哪些将接受它。 Os有什么一般规则可以说明哪种模式适用于哪种模式?

3 个答案:

答案 0 :(得分:7)

除了tibur的回答,实际上glEnableClientStateglDisableClientState的唯一用途是启用/禁用内置固定功能属性数组(如GL_VERTEX_ARRAY,{{1} },...)。对于所有其他州,您使用GL_NORMAL_ARRAYglEnable(或glDisableglEnableVertexAttribArray作为通用顶点着色器属性。)

答案 1 :(得分:3)

glEnable用于OpenGL ARB确定的状态集表示内部驱动程序状态。 glEnableClientState用于表示您更直接控制的信息的状态。存在启用/禁用的唯一客户端状态是旧的顶点数组状态。那些被glEnable/DisableVertexAttribArray取代。

这种区别实际上毫无意义,因为驱动程序仍然管理所有这种状态。

答案 2 :(得分:2)

glEnable是服务器端,而glEnableClientState是客户端。在服务器端考虑CPU和客户端作为GPU。在全球范围内,顶点数组只是客户端。