glColorPointer 函数

glColorPointer 函数定义颜色数组。

语法

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

parameters

大小

每个颜色的分量数。 该值必须为 3 或 4。

type

颜色数组中每个颜色组件的数据类型。 使用以下常量指定可接受的数据类型:GL_BYTE、GL_UNSIGNED_BYTE、GL_SHORT、GL_UNSIGNED_SHORT、GL_INT、GL_UNSIGNED_INT、GL_FLOAT或GL_DOUBLE。

大步

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

pointer

指向颜色数组中第一个颜色元素的第一个组件的指针。

返回值

此函数不返回值。

错误代码

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

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

备注

glColorPointer 函数指定呈现时要使用的颜色分量数组的位置和数据格式。 stride 参数确定从一种颜色到下一种颜色的字节偏移量,从而允许将顶点属性打包到单个数组中,或者将顶点属性打包到单独的数组中。 在某些实现中,将顶点属性存储在单个数组中比使用单独的数组更高效。

通过使用 glEnableClientState 指定GL_COLOR_ARRAY常量来启用颜色数组。 调用 glArrayElementglDrawElementsglDrawArrays 将使用因此启用的颜色数组。 默认情况下,颜色数组处于禁用状态。 glColorPointer 调用无法在显示列表中输入。

使用 glColorPointer 指定颜色数组时,函数的所有颜色数组参数的值都保存在客户端状态中,并且可以缓存静态数组元素。 由于颜色数组参数处于客户端状态, 因此 glPushAttribglPopAttrib 不会保存或还原参数的值。

虽然在 glBeginglend 对中指定颜色数组不会生成错误,但结果未定义。

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

带参数GL_COLOR_ARRAY的 glIsEnabled

带参数GL_COLOR_ARRAY_SIZE的 glGet

带参数GL_COLOR_ARRAY_TYPE的 glGet

带参数GL_COLOR_ARRAY_STRIDE的 glGet

带参数GL_COLOR_ARRAY_COUNT的 glGet

带参数GL_COLOR_ARRAY_POINTER的 glGetPointerv

要求

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

Opengl32.lib
DLL
Opengl32.dll

另请参阅

glArrayElement

glBegin

glDrawArrays

glEdgeFlagPointer

glEnableClientState

glEnd

glGet

glGetString

glGetPointerv

glIndexPointer

glIsEnabled

glNormalPointer

glPopAttrib

glPushAttrib

glTexCoordPointer

glVertexPointer