For AI agents: a documentation index is available at /llms.txt. Markdown versions of all pages are available by appending .md to any URL.

Interface 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

interface WEBGL_multi_draw {
    multiDrawArraysInstancedWEBGL(
        mode: number,
        firstsList: number[] | Int32Array<ArrayBufferLike>,
        firstsOffset: number,
        countsList: number[] | Int32Array<ArrayBufferLike>,
        countsOffset: number,
        instanceCountsList: number[] | Int32Array<ArrayBufferLike>,
        instanceCountsOffset: number,
        drawcount: number,
    ): void;
    multiDrawArraysInstancedWEBGL(
        mode: number,
        firstsList: Iterable<number, any, any> | Int32Array<ArrayBufferLike>,
        firstsOffset: number,
        countsList: Iterable<number, any, any> | Int32Array<ArrayBufferLike>,
        countsOffset: number,
        instanceCountsList:
            | Iterable<number, any, any>
            | Int32Array<ArrayBufferLike>,
        instanceCountsOffset: number,
        drawcount: number,
    ): void;
    multiDrawArraysWEBGL(
        mode: number,
        firstsList: number[] | Int32Array<ArrayBufferLike>,
        firstsOffset: number,
        countsList: number[] | Int32Array<ArrayBufferLike>,
        countsOffset: number,
        drawcount: number,
    ): void;
    multiDrawArraysWEBGL(
        mode: number,
        firstsList: Iterable<number, any, any> | Int32Array<ArrayBufferLike>,
        firstsOffset: number,
        countsList: Iterable<number, any, any> | Int32Array<ArrayBufferLike>,
        countsOffset: number,
        drawcount: number,
    ): void;
    multiDrawElementsInstancedWEBGL(
        mode: number,
        countsList: number[] | Int32Array<ArrayBufferLike>,
        countsOffset: number,
        type: number,
        offsetsList: number[] | Int32Array<ArrayBufferLike>,
        offsetsOffset: number,
        instanceCountsList: number[] | Int32Array<ArrayBufferLike>,
        instanceCountsOffset: number,
        drawcount: number,
    ): void;
    multiDrawElementsInstancedWEBGL(
        mode: number,
        countsList: Iterable<number, any, any> | Int32Array<ArrayBufferLike>,
        countsOffset: number,
        type: number,
        offsetsList: Iterable<number, any, any> | Int32Array<ArrayBufferLike>,
        offsetsOffset: number,
        instanceCountsList:
            | Iterable<number, any, any>
            | Int32Array<ArrayBufferLike>,
        instanceCountsOffset: number,
        drawcount: number,
    ): void;
    multiDrawElementsWEBGL(
        mode: number,
        countsList: number[] | Int32Array<ArrayBufferLike>,
        countsOffset: number,
        type: number,
        offsetsList: number[] | Int32Array<ArrayBufferLike>,
        offsetsOffset: number,
        drawcount: number,
    ): void;
    multiDrawElementsWEBGL(
        mode: number,
        countsList: Iterable<number, any, any> | Int32Array<ArrayBufferLike>,
        countsOffset: number,
        type: number,
        offsetsList: Iterable<number, any, any> | Int32Array<ArrayBufferLike>,
        offsetsOffset: number,
        drawcount: number,
    ): void;
}
Index
  • 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

    • mode: number
    • firstsList: number[] | Int32Array<ArrayBufferLike>
    • firstsOffset: number
    • countsList: number[] | Int32Array<ArrayBufferLike>
    • countsOffset: number
    • instanceCountsList: number[] | Int32Array<ArrayBufferLike>
    • instanceCountsOffset: number
    • drawcount: number

    Returns 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

    Returns 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

    • mode: number
    • firstsList: number[] | Int32Array<ArrayBufferLike>
    • firstsOffset: number
    • countsList: number[] | Int32Array<ArrayBufferLike>
    • countsOffset: number
    • drawcount: number

    Returns 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

    Returns 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

    • mode: number
    • countsList: number[] | Int32Array<ArrayBufferLike>
    • countsOffset: number
    • type: number
    • offsetsList: number[] | Int32Array<ArrayBufferLike>
    • offsetsOffset: number
    • instanceCountsList: number[] | Int32Array<ArrayBufferLike>
    • instanceCountsOffset: number
    • drawcount: number

    Returns 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

    Returns 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

    • mode: number
    • countsList: number[] | Int32Array<ArrayBufferLike>
    • countsOffset: number
    • type: number
    • offsetsList: number[] | Int32Array<ArrayBufferLike>
    • offsetsOffset: number
    • drawcount: number

    Returns 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

    Returns void

Was this helpful?