WEBGL_multi_draw: multiDrawArraysWEBGL() 方法
WEBGL_multi_draw.multiDrawArraysWEBGL()
方法是 WebGL API 的一部分,用于从数组数据中渲染多个图元。它与多次调用 gl.drawArrays()
方法效果相同。
语法
js
multiDrawArraysWEBGL(mode,
firstsList, firstsOffset,
countsList, countsOffset,
drawCount)
参数
模式
-
一个
GLenum
,指定要渲染的图元的类型。可能的值有:gl.POINTS
:绘制一个点。gl.LINE_STRIP
:绘制一条连接到下一个顶点的直线。gl.LINE_LOOP
:绘制一条连接到下一个顶点的直线,并将最后一个顶点连接回第一个顶点。gl.LINES
:在两个顶点之间绘制一条线。gl.TRIANGLE_STRIP
gl.TRIANGLE_FAN
gl.TRIANGLES
:为一组三个顶点绘制一个三角形。
firstsList
-
一个
Int32Array
或Array
(包含GLint
类型的值),指定了向量点数组的起始索引列表。 firstsOffset
-
一个
GLuint
类型的值,定义了firstsLists
数组的起始点。 countsList
-
一个
Int32Array
或Array
(包含GLsizei
类型的值),指定了要渲染的索引数量列表。 countsOffset
-
一个
GLuint
类型的值,定义了countsList
数组的起始点。 drawCount
-
一个
GLsizei
,指定要执行的元素范围的实例数量。
返回值
无。
异常
- 如果
mode
不是接受的值之一,则会抛出gl.INVALID_ENUM
错误。 - 如果
drawCount
或firstsList
和countsList
中的项为负数,则会抛出gl.INVALID_VALUE
错误。 - 如果
gl.CURRENT_PROGRAM
为null
,则会抛出gl.INVALID_OPERATION
错误。
示例
js
const firsts = new Int32Array(/* … */);
const counts = new Int32Array(/* … */);
ext.multiDrawArraysWEBGL(gl.TRIANGLES, firsts, 0, counts, 0, firsts.length);
规范
规范 |
---|
WebGL WEBGL_multi_draw 扩展规范 |
浏览器兼容性
加载中…