GLES3.0中文API-glDrawElements

名称

glDrawElements — 从数组数据渲染图元

C 规范

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

参数

mode
指定要渲染的图元类型。接受符号常量GL_POINTS,GL_LINE_STRIP,GL_LINE_LOOP,GL_LINES,GL_LINE_STRIP_ADJACENCY,GL_LINES_ADJACENCY,GL_TRIANGLE_STRIP,GL_TRIANGLE_FAN,GL_TRIANGLES,GL_TRIANGACE_STRIP_ADIP_AD_ACE

count
指定要渲染的元素数。

type
指定索引中值的类型。必须是GL_UNSIGNED_BYTE,GL_UNSIGNED_SHORT或GL_UNSIGNED_INT中的一种。

indices
指定绑定到GL_ELEMENT_ARRAY_BUFFER的缓冲区中的字节偏移量(转换为指针类型),以开始从中读取索引。如果没有绑定缓冲区,则指定指向索引存储位置的指针。

描述

glDrawElements使用很少的子例程调用来指定多个几何图元。可以预先指定单独的属性数组,并通过一次调用glDrawElements将其用于构造一系列基元。

调用glDrawElements时,它将使用启用数组中的计数顺序元素,从索引处开始构建几何图元序列。模式指定构造什么样的图元,以及数组元素如何构造这些图元。如果启用了多个阵列,则使用每个阵列。

要启用和禁用通用顶点属性数组,请调用glEnableVertexAttribArray和glDisableVertexAttribArray。

如果未启用与顶点着色器所需的通用属性相对应的数组,则将从当前的通用属性状态获取相应的元素。

注意

GL_LINE_STRIP_ADJACENCY,GL_LINES_ADJACENCY,GL_TRIANGLE_STRIP_ADJACENCY,GL_TRIANGLES_ADJACENCY和GL_PATCHES仅在GL ES版本为3.2或更高版本时可用。

错误

如果mode不被接受,则生成GL_INVALID_ENUM。

如果计数为负,则生成GL_INVALID_VALUE。

如果将非零缓冲区对象名称绑定到已启用的数组或元素数组,并且当前已映射缓冲区对象的数据存储,则将生成GL_INVALID_OPERATION。

如果当前绑定的帧缓冲区未完成帧缓冲区(即glCheckFramebufferStatus的返回值不是GL_FRAMEBUFFER_COMPLETE),则会生成GL_INVALID_FRAMEBUFFER_OPERATION。

如果转换反馈处于活动状态且未暂停,则生成GL_INVALID_OPERATION。

如果几何着色器处于活动状态,并且模式与当前安装的程序对象中的几何着色器的输入基本类型不兼容,则生成GL_INVALID_OPERATION。

API支持版本

函数名 2.0 3.0 3.1 3.2
glDrawElements

另见

glCheckFramebufferStatus, glDisableVertexAttribArray, glDrawArrays, glDrawArraysInstanced, glDrawElementsInstanced, glDrawRangeElements, glEnableVertexAttribArray

版权

https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glDrawElements.xhtml
Copyright © 1991-2006 Silicon Graphics, Inc. Copyright © 2010-2015 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see http://oss.sgi.com/projects/FreeB/.

发布了215 篇原创文章 · 获赞 0 · 访问量 773

猜你喜欢

转载自blog.csdn.net/MSK1111/article/details/103093250