WEBGL_multi_draw:multiDrawElementsWEBGL() 方法

WEBGL_multi_draw.multiDrawElementsWEBGL()WebGL API 的方法,它可以从数组数据渲染多个图元。它与对 gl.drawElements() 方法的多次调用相同。

语法

js
multiDrawElementsWEBGL(mode,
    countsList, countsOffset,
    type,
    firstsList, firstsOffset,
    drawCount);

参数

mode

一个 GLenum,指定要渲染的图元类型。可能的取值是

  • gl.POINTS:绘制单个点。
  • gl.LINE_STRIP:绘制一条到下一个顶点的直线。
  • gl.LINE_LOOP:绘制一条到下一个顶点的直线,并将最后一个顶点连接回第一个顶点。
  • gl.LINES:绘制一对顶点之间的直线。
  • gl.TRIANGLE_STRIP
  • gl.TRIANGLE_FAN
  • gl.TRIANGLES:为一组三个顶点绘制一个三角形。
countsList

一个 Int32ArrayArray(包含 GLint),指定要渲染的索引数量列表。

countsOffset

一个 GLUint,定义 countsList 数组的起始点。

type

一个 GLenum,指定元素数组缓冲区中值的类型。可能的取值是

offsetsList

一个 Int32ArrayArray(包含 GLsizei),指定向量点数组的起始索引列表。

offsetsOffset

一个 GLuint,定义 offsetsList 数组的起始点。

drawCount

一个 GLsizei,指定要执行的元素范围的实例数量。

返回值

无。

异常

  • 如果 mode 不是接受的值之一,则会抛出 gl.INVALID_ENUM 错误。
  • 如果 drawCountcountsListoffsetsList 中的项目为负数,则会抛出 gl.INVALID_VALUE 错误。

示例

js
const counts = new Int32Array(/* … */);
const offsets = new Int32Array(/* … */);
ext.multiDrawElementsWEBGL(
  gl.TRIANGLES,
  counts,
  0,
  gl.UNSIGNED_SHORT,
  offsets,
  0,
  counts.length,
);

规范

规范
WebGL WEBGL_multi_draw 扩展规范

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅