Path: blob/main/files/en-us/web/api/angle_instanced_arrays/drawelementsinstancedangle/index.md
6532 views
------{{APIRef("WebGL")}}
The ANGLE_instanced_arrays.drawElementsInstancedANGLE() method of the WebGL API renders primitives from array data like the {{domxref("WebGLRenderingContext.drawElements()", "gl.drawElements()")}} method. In addition, it can execute multiple instances of a set of elements.
Note: When using {{domxref("WebGL2RenderingContext", "WebGL2")}}, this method is available as {{domxref("WebGL2RenderingContext.drawElementsInstanced()", "gl.drawElementsInstanced()")}} by default.
Syntax
Parameters
mode: A {{domxref("WebGL_API/Types", "GLenum")}} specifying the type primitive to render. Possible values are:
gl.POINTS: Draws a single dot.gl.LINE_STRIP: Draws a straight line to the next vertex.gl.LINE_LOOP: Draws a straight line to the next vertex, and connects the last vertex back to the first.gl.LINES: Draws a line between a pair of vertices.gl.TRIANGLES: Draws a triangle for a group of three vertices.
count: A {{domxref("WebGL_API/Types", "GLsizei")}} specifying the number of elements to be rendered.
type: A {{domxref("WebGL_API/Types", "GLenum")}} specifying the type of the values in the element array buffer. Possible values are:
gl.UNSIGNED_BYTEgl.UNSIGNED_SHORTgl.UNSIGNED_INTwhen using the {{domxref("OES_element_index_uint")}} extension.
offset: A {{domxref("WebGL_API/Types", "GLintptr")}} specifying an offset in the element array buffer. Must be a valid multiple of the size of the given
type.
primcount: A {{domxref("WebGL_API/Types", "GLsizei")}} specifying the number of instances of the set of elements to execute.
Return value
None ({{jsxref("undefined")}}).
Exceptions
If
modeis not one of the accepted values, agl.INVALID_ENUMerror is thrown.If
offsetis an invalid multiple of the size of the given type, agl.INVALID_OPERATIONerror is thrown.If
countorprimcountare negative, agl.INVALID_VALUEerror is thrown.
Examples
Specifications
{{Specifications}}
Browser compatibility
{{Compat}}
See also
{{domxref("ANGLE_instanced_arrays.drawArraysInstancedANGLE()", "ext.drawArraysInstancedANGLE()")}}
{{domxref("ANGLE_instanced_arrays.vertexAttribDivisorANGLE()", "ext.vertexAttribDivisorANGLE()")}}
{{domxref("WebGLRenderingContext.drawArrays()")}}
{{domxref("WebGLRenderingContext.drawElements()")}}
{{domxref("WebGL2RenderingContext.drawArraysInstanced()")}}
{{domxref("WebGL2RenderingContext.drawElementsInstanced()")}}
{{domxref("WebGL2RenderingContext.vertexAttribDivisor()")}}
{{domxref("WEBGL_multi_draw.multiDrawElementsInstancedWEBGL()")}}