首先,OpenGL 中有 8 种类型的缓冲区对象:
- GL_ARRAY_BUFFER</li>
- GL_ELEMENT_ARRAY_BUFFER</li>
- GL_COPY_READ_BUFFER
- ...
它们是枚举,或者更具体地说是 GLenum 的。其中 GLenum 是一个无符号的 32 位整数,可以说它的值高达 ~ 4,743,222,432。
缓冲区对象的大多数用途涉及将它们绑定到某个目标,如下所示:例如
glBindBuffer (GL_ARRAY_BUFFER, 缓冲区 [大小]);
[void glBindBuffer(GLenum 目标,GLuint 缓冲区)] 文档
我的问题是 - 如果它是一个枚举,它的唯一值必须分别是 0,1,2,3,4..7 那么如果它只有高达 7 的值,为什么要一直让它成为一个 32 位整数呢?请原谅我对 CS 和 OpenGL 的了解,这似乎是不道德的。