glDrawElements 函数

glDrawElements 函数呈现数组数据中的基元。

语法

void WINAPI glDrawElements(
         GLenum  mode,
         GLsizei count,
         GLenum  type,
   const GLvoid  *indices
);

参数

mode

要呈现的基元类型。 它可以假定以下符号值之一:GL_POINTS、GL_LINE_STRIP、GL_LINE_LOOP、GL_LINES、GL_TRIANGLE_STRIP、GL_TRIANGLE_FAN、GL_TRIANGLES、GL_QUAD_STRIP、GL_QUADS和GL_POLYGON。

计数

要呈现的元素数。

type

索引中值的类型。 必须是GL_UNSIGNED_BYTE、GL_UNSIGNED_SHORT或GL_UNSIGNED_INT之一。

索引

指向存储索引的位置的指针。

返回值

此函数不返回值。

错误代码

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

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

备注

使用 glDrawElements 函数可以指定多个几何基元,且函数调用很少。 无需调用 OpenGL 函数来传递每个单独的顶点、法线或颜色,可以预先指定顶点、法线和颜色的单独数组,并使用它们定义一系列基元, (所有相同类型) ,只需调用 glDrawElements 即可。

调用 glDrawElements 函数时,它使用索引中的顺序元素计数来构造几何基元序列。 mode 参数指定构造的基元类型,以及如何使用数组元素构造这些基元。 如果未启用GL_VERTEX_ARRAY,则不会生成几何基元。

glDrawElements 修改的顶点属性在 glDrawElement 返回后具有未指定的值。 例如,如果启用GL_COLOR_ARRAY,则执行 glDrawElements 后,当前颜色的值将不确定。 未修改的属性保持不变。

可以在显示列表中包括 glDrawElements 函数。 当 glDrawElements 包含在显示列表中时,必要的数组数据 (由数组指针确定并启用) 也会输入到显示列表中。 由于数组指针和启用是客户端状态变量,因此其值在创建列表时影响显示列表,而不是在执行列表时影响显示列表。

注意

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

要求

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

Opengl32.lib
DLL
Opengl32.dll

另请参阅

glArrayElement

glBegin

glColorPointer

glDrawArrays

glEdgeFlagPointer

glEnd

glGetPointerv

glIndexPointer

glNormalPointer

glTexCoordPointer

glVertexPointer