glVertexPointer 函数

glVertexPointer 函数定义顶点数据的数组。

语法

void WINAPI glVertexPointer(
         GLint   size,
         GLenum  type,
         GLsizei stride,
   const GLvoid  *pointer
);

parameters

大小

每个顶点的坐标数。 大小的值必须为 2、3 或 4。

type

数组中每个坐标的数据类型使用以下符号常量:GL_SHORT、GL_INT、GL_FLOAT和GL_DOUBLE。

大步

连续顶点之间的字节偏移量。 当步幅为零时,顶点将紧密打包在数组中。

指针

指向数组中第一个顶点的第一个坐标的指针。

返回值

此函数不返回值。

错误代码

glGetError 函数可以检索以下错误代码。

名称 含义
GL_INVALID_VALUE
大小 不是 2、3 或 4。
GL_INVALID_ENUM
类型 不是接受的值。
GL_INVALID_VALUE
步幅计数 为负数。

注解

glVertexPointer 函数指定呈现时要使用的顶点坐标数组的位置和数据。 size 参数指定每个顶点的坐标数。 type 参数指定每个顶点坐标的数据类型。 步幅参数确定从一个顶点到下一个顶点的字节偏移量,从而在单个数组或单独的数组中存储中打包顶点和属性。 在某些实现中,将顶点和属性存储在单个数组中比使用单独的数组更高效, (看到 glInterleavedArrays) 。

使用 glEnableClientState 指定GL_VERTEX_ARRAY常量时,将启用顶点数组。 启用后, glDrawArraysglDrawElement 和glArrayElement 使用顶点数组。 默认情况下,顶点数组处于禁用状态。

不能在显示列表中包括 glVertexPointer

使用 glVertexPointer 指定顶点数组时,所有函数顶点数组参数的值都保存在客户端状态中,静态数组元素可以缓存。 由于顶点数组参数是客户端状态,因此它们的值不会由 glPushAttribglPopAttrib 保存或还原。

如果在 glBeginglEnd 对中调用 glVertexPointer,则不会生成任何错误,但结果未定义。

以下函数检索与 glVertexPointer 相关的信息:

带参数GL_VERTEX_ARRAY_SIZE的 glGet

带参数GL_VERTEX_ARRAY_STRIDE的 glGet

带参数GL_VERTEX_ARRAY_COUNT的 glGet

带参数GL_VERTEX_ARRAY_TYPE的 glGet

带参数GL_VERTEX_ARRAY_POINTER的 glGetPointerv

带参数的 glIsEnabled GL_VERTEX_ARRAY

要求

要求
最低受支持的客户端
Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器
Windows 2000 Server [仅限桌面应用]
标头
Gl.h

Opengl32.lib
DLL
Opengl32.dll

另请参阅

glArrayElement

glColorPointer

glDrawArrays

glEdgeFlagPointer

glEnableClientState

glGetPointerv

glGetString

glIndexPointer

glIsEnabled

glNormalPointer

glTexCoordPointer