WebGLRenderingContext: drawElements() 方法
基线 广泛可用
此功能已久,并在许多设备和浏览器版本中正常运行。它自 2015 年 7 月.
报告反馈
语法
WebGLRenderingContext.drawElements()
方法是 WebGL API 的一部分,用于从数组数据渲染基本图形。drawElements(mode, count, type, offset)
js
参数
-
mode
- 一个
GLenum
,用于指定要渲染的基本图形类型。可能的值有: gl.POINTS
:绘制单个点。-
gl.LINE_STRIP
:绘制到下一个顶点的直线。 gl.LINE_LOOP
:绘制到下一个顶点的直线,并将最后一个顶点连接回第一个顶点。gl.LINES
:绘制连接一对顶点的线段。gl.TRIANGLE_STRIP
- gl.TRIANGLE_FAN
- 一个
gl.TRIANGLES
:绘制由三个顶点组成的三角形。-
count
一个
GLsizei
,指定要渲染的绑定元素数组缓冲区的元素数量。例如,要绘制一个带有gl.LINES
的线框三角形,计数应该为 2 个端点/线 × 3 条线 = 6 个元素。但是,要绘制相同线框三角形,但使用gl.LINE_STRIP
,元素数组缓冲区不会重复第一条线末端/第二条线开始的索引,以及第二条线末端/第三条线开始的索引,因此count
将为 4。要绘制相同三角形,但使用gl.LINE_LOOP
,元素数组缓冲区也不会重复第一个/最后一个顶点,因此count
将为 3。-
type
一个
GLenum
,指定元素数组缓冲区中值的类型。可能的值有:gl.UNSIGNED_BYTE
gl.UNSIGNED_SHORT
使用
OES_element_index_uint
扩展时
gl.UNSIGNED_INT
-
offset
一个 GLintptr
,指定元素数组缓冲区中的字节偏移量。必须是给定 type
大小的有效倍数。
返回值
无 (undefined
).
- 异常
- 如果
mode
不是接受的值之一,则会抛出gl.INVALID_ENUM
错误。 - 如果
offset
不是给定类型大小的有效倍数,则会抛出gl.INVALID_OPERATION
错误。
示例
WebGLRenderingContext.drawElements()
方法是 WebGL API 的一部分,用于从数组数据渲染基本图形。gl.drawElements(gl.POINTS, 8, gl.UNSIGNED_BYTE, 0);
规范
如果 count 为负数,则会抛出 gl.INVALID_VALUE 错误。 |
---|
规范 # 5.14.11 |
浏览器兼容性
WebGL 规范