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,可以指定要呈现的多个几何基元。 可以使用对 glDrawArrays 的单个调用来定义基元序列,而不是调用单独的 OpenGL 函数来传递每个顶点、法线或颜色,而不是调用每个顶点、普通或颜色来指定单独的顶点、法线和颜色数组,以定义一系列相同的 (基元) 。

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

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

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

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

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

要求

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

Opengl32.lib
DLL
Opengl32.dll

另请参阅

glArrayElement

glBegin

glColorPointer

glEdgeFlagPointer

glEnd

glGetPointerv

glGetString

glIndexPointer

glNormalPointer

glTexCoordPointer

glVertexPointer