1
考虑下面的OpenGL代码片段:定义一个指针OpenGL的顶点数组对象
GLuint vao;
glCreateVertexArrays(1, glBindVertexArray(&vao));
我的印象中,这是什么代码确实是
- 下是创建类型的指针,
GLuint
,最终将指向一个OpenGL顶点数组对象。这个指针的名字是vao
。 - 通过OpenGL为实际顶点阵列对象间接分配内存(即C中不使用
malloc
或使用C++中的malloc
或使用C++中的new
)。这样做的方式是通过功能glCreateVertexArrays
。该功能还使指针vao
指向顶点数组对象。
我的理解是否正确?如果是这样,在(1)中,为什么指针GLuint
的类型并没有明确定义为指针类型(例如在C/C++中使用*
或使用OpenGL类型GLintptr
)?
所以我应该把'vao'想象成类似于散列表查找中的(无符号整数)键(这可以让我到顶点数组对象)? – George
@George:非常漂亮。这就是所有[OpenGL对象](https://www.opengl.org/wiki/OpenGL_Object)的工作原理。 –