1.glEnableClientState(GL_VERTEX_ARRAY); 使能顶点数组功能。
2.将准备好的数组告知程序,使用glVertexPointer(),原型如下:
void glVertexPointer(
GLint size, //每个顶点占用的数组元素数量
GLenum type, //数组元素的数据类型
GLsizei stride, //元素之间的间隔,一般系统为0
const GLvoid *pointer //指向数组的指针
);
3.进行绘图:glDrawArrays()或者 glDrawElements(),glDrawElements()主要用于索引数组。函数原型如下:
void glDrawArrays(
GLenum mode, //绘图方式 GL_POINTS、GL_QUADS etc
GLint first, //第一个元素的下标
GLsizei count //绘制元素的数量
);
void glDrawElements(
GLenum mode, //绘图方式 GL_POINTS、GL_QUADS etc
GLsizei count, //顶点数组当中元素的个数
GLenum type, //索引数组当中元素数据类型
const GLvoid *indices //指向索引数组的指针
);
对应于顶点数组,OpenGL当中还提供了法向量数组、纹理坐标数组等等的支持,这些数组与顶点数组的使用方式相同,只是在相关参数和函数名称上将Vertex改为对应的名字即可。
glEnableClientState(GL_COLOR_ARRAY);
glColorPointer();