glInterleavedArrays 函数

glInterleavedArrays 函数同时指定并启用较大聚合数组中的多个交错数组。

语法

void WINAPI glInterleavedArrays(
         GLenum  format,
         GLsizei stride,
   const GLvoid  *pointer
);

参数

format

要启用的数组的类型。 参数可以采用以下符号值之一:GL_V2F、GL_V3F、GL_C4UB_V2F、GL_C4UB_V3F、GL_C3F_V3F、GL_N3F_V3F、GL_C4F_N3F_V3F、GL_T2F_V3F、GL_T4F_V4F、GL_T2F_C4UB_V3F、GL_T2F_C3F_V3F、GL_T2F_N3F_V3F、GL_T2F_C4F_N3F_V3F或GL_T4F_C4F_N3F_V4F。

大步

每个聚合数组元素之间的偏移量(以字节为单位)。

pointer

指向聚合数组的第一个元素的指针。

返回值

此函数不返回值。

错误代码

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

名称 含义
GL_INVALID_ENUM
format 不是接受的值。
GL_INVALID_VALUE
stride 为负值。
GL_INVALID_OPERATION
函数是在 对 glBegin 的调用和对 glEnd 的相应调用之间调用的。

备注

使用 glInterleavedArrays 函数,可以同时指定和启用多个交错的颜色、法线、纹理和顶点数组,这些数组的元素是较大聚合数组元素的一部分。 对于某些内存体系结构,这比单独指定数组更有效。

如果 stride 参数为零,则聚合数组元素将连续存储;否则,在聚合数组元素之间发生 步幅 字节。

format 参数用作描述如何从聚合数组中提取单个数组的键:

  • 如果 format 包含 T,则从交错数组中提取纹理坐标。
  • 如果 C 存在,则提取颜色值。
  • 如果存在 N,则提取法线坐标。
  • 始终提取顶点坐标。
  • 数字 2、3 和 4 表示提取的值数。
  • F 指示将值提取为浮点值。
  • 如果 4UB 遵循 C,则颜色也可以提取为 4 个无符号字节。 如果将颜色提取为 4 个无符号字节,则后面的顶点数组元素位于第一个可能的浮点对齐地址处。

如果在编译显示列表时调用 glInterleavedArrays ,则不会将其编译到列表中,而是立即执行。

在对 glBegin 的调用和对 glEnd 的相应调用之间,不能在 glDisableClientState 中包含对 glInterleavedArrays 的调用。

注意

glInterleavedArrays 函数仅在 OpenGL 版本 1.1 或更高版本中可用。

glInterleavedArrays 函数在没有协议的客户端上实现。 由于顶点数组参数是客户端状态,因此 glPushAttribglPopAttrib 不会保存或还原它们。 请改用 glPushClientAttribglPopClientAttrib

要求

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

Opengl32.lib
DLL
Opengl32.dll

另请参阅

glArrayElement

glColorPointer

glDrawArrays

glDrawElements

glEdgeFlagPointer

glEnableClientState

glGetPointerv

glIndexPointer

glNormalPointer

glPushAttrib

glPushClientAttrib

glTexCoordPointer

glVertexPointer