glDrawArrays 函数

glDrawArrays 函数指定要呈现的多个基元。

语法

void WINAPI glDrawArrays(
   GLenum  mode,
   GLint   first,
   GLsizei count
);

参数

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。

first

已启用的数组中的起始索引。

计数

要呈现的索引数。

返回值

此函数不返回值。

错误代码

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

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

备注

使用 glDrawArrays,可以指定要呈现的多个几何基元。 无需调用单独的 OpenGL 函数来传递每个单独的顶点、法线或颜色,你可以指定单独的顶点、法线和颜色数组,以定义一个基元序列, (所有相同类型的) ,只需调用 一次即可调用 glDrawArrays

调用 glDrawArrays 时,每个已启用数组中的顺序元素 计数 用于构造几何基元序列,从 一个元素开始。 mode 参数指定要构造的基元类型,以及如何使用数组元素构造基元。

glDrawArrays 返回后,由 glDrawArrays 修改的顶点属性的值是未定义的。 例如,如果启用了GL_COLOR_ARRAY,则 glDrawArrays 返回后,当前颜色的值将未定义。 未由 glDrawArrays 修改的属性将保持定义状态。 如果未启用GL_VERTEX_ARRAY,则不会生成几何基元,但会修改与启用的数组对应的属性。

可以在显示列表中包括 glDrawArrays 。 在显示列表中包括 glDrawArrays 时,将生成必要的数组数据(由数组指针和 启用)并在显示列表中输入。 数组指针和启用的值是在创建显示列表期间确定的。

可以随时读取静态数组数据。 如果修改了任何静态数组元素,并且未再次指定数组,则对 glDrawArrays 的任何后续调用的结果均未定义。

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

要求

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

Opengl32.lib
DLL
Opengl32.dll

另请参阅

glArrayElement

glBegin

glColorPointer

glEdgeFlagPointer

glEnd

glGetPointerv

glGetString

glIndexPointer

glNormalPointer

glTexCoordPointer

glVertexPointer