files/en-us/web/api/webgl2renderingcontext/drawelementsinstanced/index.md
{{APIRef("WebGL")}}{{AvailableInWorkers}}
The WebGL2RenderingContext.drawElementsInstanced() method
of the WebGL 2 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("WebGLRenderingContext", "WebGL 1", "", 1)}}, the {{domxref("ANGLE_instanced_arrays")}} extension can provide this method, too.
drawElementsInstanced(mode, count, type, offset, instanceCount)
mode
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.TRIANGLE_STRIPgl.TRIANGLE_FANgl.TRIANGLES: Draws a triangle for a group of three vertices.count
type
gl.UNSIGNED_BYTEgl.UNSIGNED_SHORTgl.UNSIGNED_INT When using the {{domxref("OES_element_index_uint")}} extension.offset
type.instanceCount
None ({{jsxref("undefined")}}).
mode is not one of the accepted values, a
gl.INVALID_ENUM error is thrown.offset is a valid multiple of the size of the given type, a
gl.INVALID_OPERATION error is thrown.count or instanceCount are negative, a
gl.INVALID_VALUE error is thrown.gl.drawElementsInstanced(gl.POINTS, 2, gl.UNSIGNED_SHORT, 0, 4);
{{Specifications}}
{{Compat}}