Skip to main content

WEBGL_multi_draw

The WEBGL_multi_draw extension is part of the WebGL API and allows to render more than one primitive with a single function call. This can improve a WebGL application's performance as it reduces binding costs in the renderer and speeds up GPU thread time with uniform data.

MDN Reference

Methods​

multiDrawArraysInstancedWEBGL()​

Call Signature​

multiDrawArraysInstancedWEBGL(
mode,
firstsList,
firstsOffset,
countsList,
countsOffset,
instanceCountsList,
instanceCountsOffset,
drawcount
): void;

The WEBGL_multi_draw.multiDrawArraysInstancedWEBGL() method of the WebGL API renders multiple primitives from array data. It is identical to multiple calls to the gl.drawArraysInstanced() method.

MDN Reference

Parameters​
ParameterType
modenumber
firstsListnumber[] | Int32Array<ArrayBufferLike>
firstsOffsetnumber
countsListnumber[] | Int32Array<ArrayBufferLike>
countsOffsetnumber
instanceCountsListnumber[] | Int32Array<ArrayBufferLike>
instanceCountsOffsetnumber
drawcountnumber
Returns​

void

Call Signature​

multiDrawArraysInstancedWEBGL(
mode,
firstsList,
firstsOffset,
countsList,
countsOffset,
instanceCountsList,
instanceCountsOffset,
drawcount
): void;

The WEBGL_multi_draw.multiDrawArraysInstancedWEBGL() method of the WebGL API renders multiple primitives from array data. It is identical to multiple calls to the gl.drawArraysInstanced() method.

MDN Reference

Parameters​
ParameterType
modenumber
firstsList| Iterable<number, any, any> | Int32Array<ArrayBufferLike>
firstsOffsetnumber
countsList| Iterable<number, any, any> | Int32Array<ArrayBufferLike>
countsOffsetnumber
instanceCountsList| Iterable<number, any, any> | Int32Array<ArrayBufferLike>
instanceCountsOffsetnumber
drawcountnumber
Returns​

void


multiDrawArraysWEBGL()​

Call Signature​

multiDrawArraysWEBGL(
mode,
firstsList,
firstsOffset,
countsList,
countsOffset,
drawcount
): void;

The WEBGL_multi_draw.multiDrawArraysWEBGL() method of the WebGL API renders multiple primitives from array data. It is identical to multiple calls to the gl.drawArrays() method.

MDN Reference

Parameters​
ParameterType
modenumber
firstsListnumber[] | Int32Array<ArrayBufferLike>
firstsOffsetnumber
countsListnumber[] | Int32Array<ArrayBufferLike>
countsOffsetnumber
drawcountnumber
Returns​

void

Call Signature​

multiDrawArraysWEBGL(
mode,
firstsList,
firstsOffset,
countsList,
countsOffset,
drawcount
): void;

The WEBGL_multi_draw.multiDrawArraysWEBGL() method of the WebGL API renders multiple primitives from array data. It is identical to multiple calls to the gl.drawArrays() method.

MDN Reference

Parameters​
ParameterType
modenumber
firstsList| Iterable<number, any, any> | Int32Array<ArrayBufferLike>
firstsOffsetnumber
countsList| Iterable<number, any, any> | Int32Array<ArrayBufferLike>
countsOffsetnumber
drawcountnumber
Returns​

void


multiDrawElementsInstancedWEBGL()​

Call Signature​

multiDrawElementsInstancedWEBGL(
mode,
countsList,
countsOffset,
type,
offsetsList,
offsetsOffset,
instanceCountsList,
instanceCountsOffset,
drawcount
): void;

The WEBGL_multi_draw.multiDrawElementsInstancedWEBGL() method of the WebGL API renders multiple primitives from array data. It is identical to multiple calls to the gl.drawElementsInstanced() method.

MDN Reference

Parameters​
ParameterType
modenumber
countsListnumber[] | Int32Array<ArrayBufferLike>
countsOffsetnumber
typenumber
offsetsListnumber[] | Int32Array<ArrayBufferLike>
offsetsOffsetnumber
instanceCountsListnumber[] | Int32Array<ArrayBufferLike>
instanceCountsOffsetnumber
drawcountnumber
Returns​

void

Call Signature​

multiDrawElementsInstancedWEBGL(
mode,
countsList,
countsOffset,
type,
offsetsList,
offsetsOffset,
instanceCountsList,
instanceCountsOffset,
drawcount
): void;

The WEBGL_multi_draw.multiDrawElementsInstancedWEBGL() method of the WebGL API renders multiple primitives from array data. It is identical to multiple calls to the gl.drawElementsInstanced() method.

MDN Reference

Parameters​
ParameterType
modenumber
countsList| Iterable<number, any, any> | Int32Array<ArrayBufferLike>
countsOffsetnumber
typenumber
offsetsList| Iterable<number, any, any> | Int32Array<ArrayBufferLike>
offsetsOffsetnumber
instanceCountsList| Iterable<number, any, any> | Int32Array<ArrayBufferLike>
instanceCountsOffsetnumber
drawcountnumber
Returns​

void


multiDrawElementsWEBGL()​

Call Signature​

multiDrawElementsWEBGL(
mode,
countsList,
countsOffset,
type,
offsetsList,
offsetsOffset,
drawcount
): void;

The WEBGL_multi_draw.multiDrawElementsWEBGL() method of the WebGL API renders multiple primitives from array data. It is identical to multiple calls to the gl.drawElements() method.

MDN Reference

Parameters​
ParameterType
modenumber
countsListnumber[] | Int32Array<ArrayBufferLike>
countsOffsetnumber
typenumber
offsetsListnumber[] | Int32Array<ArrayBufferLike>
offsetsOffsetnumber
drawcountnumber
Returns​

void

Call Signature​

multiDrawElementsWEBGL(
mode,
countsList,
countsOffset,
type,
offsetsList,
offsetsOffset,
drawcount
): void;

The WEBGL_multi_draw.multiDrawElementsWEBGL() method of the WebGL API renders multiple primitives from array data. It is identical to multiple calls to the gl.drawElements() method.

MDN Reference

Parameters​
ParameterType
modenumber
countsList| Iterable<number, any, any> | Int32Array<ArrayBufferLike>
countsOffsetnumber
typenumber
offsetsList| Iterable<number, any, any> | Int32Array<ArrayBufferLike>
offsetsOffsetnumber
drawcountnumber
Returns​

void