glTexCoordPointer 函数

glTexCoordPointer 函数定义纹理坐标数组。

语法

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

parameters

大小

每个数组元素的坐标数。 size 的值必须为 1、2、3 或 4。

type

数组中每个纹理坐标的数据类型,使用以下符号常量: GL_SHORTGL_INTGL_FLOATGL_DOUBLE

大步

连续数组元素之间的字节偏移量。 当 stride 为零时,数组元素将紧密地打包在数组中。

pointer

指向数组中第一个元素的第一个坐标的指针。

返回值

此函数不返回值。

错误代码

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

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

备注

glTexCoordPointer 函数指定呈现时要使用的纹理坐标数组的位置和数据。size 参数指定用于数组的每个元素的坐标数。type 参数指定每个纹理坐标的数据类型。 stride 参数确定从一个数组元素到下一个数组元素的字节偏移量,从而允许在单个数组中打包顶点和属性,或在单独的数组中存储。 在某些实现中,将顶点和属性存储在单个数组中比使用单独的数组更高效。 有关详细信息,请参阅 glInterleavedArrays。 指定纹理坐标数组时,大小、类型、步幅和指针将保存客户端状态。

使用 glEnableClientState 指定GL_TEXTURE_COORD_ARRAY常量时,将启用纹理坐标数组。 启用时, glDrawArraysglDrawElementsglArrayElement 使用纹理坐标数组。 默认情况下,纹理坐标数组处于禁用状态。

不能在显示列表中包括 glTexCoordPointer

使用 glTexCoordPointer 指定纹理坐标数组时,函数的所有纹理坐标数组参数的值都保存为客户端状态,并且可以缓存静态数组元素。 由于纹理坐标数组参数是客户端状态,因此其值不会由 glPushAttribglPopAttrib 保存或还原。

虽然在 glBeginglEnd 对中调用 glTexCoordPointer 时不会生成错误,但结果未定义。

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

glIsEnabled with argument GL_TEXTURE_COORD_ARRAY

带参数GL_TEXTURE_COORD_ARRAY_SIZEglGet

带参数GL_TEXTURE_COORD_ARRAY_STRIDE的glGet

带参数GL_TEXTURE_COORD_ARRAY_COUNT的glGet

带参数GL_TEXTURE_COORD_ARRAY_TYPE的glGet

带参数GL_TEXTURE_COORD_ARRAY_POINTER的 glGetPointerv

要求

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

Opengl32.lib
DLL
Opengl32.dll

请参阅

glArrayElement

glColorPointer

glDrawArrays

glDrawElements

glEdgeFlagPointer

glEnable

glGetPointerv

glGetString

glIndexPointer

glIsEnabled

glNormalPointer

glPopClientAttrib

glPushClientAttrib

glTexCoord

glVertexPointer