名称
glDrawElements - 从数组数据中渲染图元
C规范
void 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。
count
指定要渲染的元素数。
type
指定indices中值的类型。 必须是GL_UNSIGNED_BYTE或GL_UNSIGNED_SHORT。
indices
指定指向存储索引的位置的指针。
描述
glDrawElements指定了几个子例程调用的几何图元。你可以使用glVertexAttribPointer预先指定单独的顶点,法线和颜色数组,而不是调用GL过程来传递每个单独的顶点属性并使用它们通过单次调用glDrawElements来构造图元序列。
当调用glDrawElements时,它使用来自启用数组的计数顺序元素,从索引开始构造几何图元序列。mode指定构造什么类型的图元以及数组元素如何构造这些图元。 如果启用了多个数组,则使用每个数组。
要启用和禁用通用顶点属性数组,请调用glEnableVertexAttribArray和glDisableVertexAttribArray。
注意
如果glUseProgram设置的当前程序对象无效,则渲染结果未定义。 但是,这种情况不会产生错误。
错误
GL_INVALID_ENUM:mode不是一个可接收的值
GL_INVALID_ENUM:type不是GL_UNSIGNED_BYTE或GL_UNSIGNED_SHORT
GL_INVALID_VALUE:count是负数
GL_INVALID_FRAMEBUFFER_OPERATION:如果当前绑定的帧缓冲区不是帧缓冲区完成状态(即glCheckFramebufferStatus的返回值不是GL_FRAMEBUFFER_COMPLETE)。
另见
glCheckFramebufferStatus,glEnableVertexAttribArray,glDisableVertexAttribArray,glDrawArrays,glUseProgram,glVertexAttribPointer
版权
https://www.khronos.org/registry/OpenGL-Refpages/es2.0/xhtml/glDrawElements.xml
https://blog.csdn.net/flycatdeng
Copyright © 1991-2006 Silicon Graphics, Inc.本文档的许可是根据SGI Free Software B License.详见http://oss.sgi.com/projects/FreeB/.