This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Note: This feature is available in Web Workers.
The WebGLRenderingContext.drawElements() method of the WebGL API renders primitives from array data.
drawElements(mode, count, type, offset)
modeA 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.TRIANGLE_STRIPgl.TRIANGLE_FANgl.TRIANGLES: Draws a triangle for a group of three vertices.countA GLsizei specifying the number of elements of the bound element array buffer to be rendered. For example, to draw a wireframe triangle with gl.LINES the count should be 2 endpoints per line × 3 lines = 6 elements. However to draw the same wireframe triangle with gl.LINE_STRIP the element array buffer does not repeat the indices for the end of the first line/start of the second line, and end of the second line/start of the third line, so count will be four. To draw the same triangle with gl.LINE_LOOP the element array buffer does not repeat the first/last vertex either so count will be three.
typeA GLenum specifying the type of the values in the element array buffer. Possible values are:
gl.UNSIGNED_BYTEgl.UNSIGNED_SHORTWhen using the OES_element_index_uint extension:
gl.UNSIGNED_INToffsetA GLintptr specifying a byte offset in the element array buffer. Must be a valid multiple of the size of the given type.
None (undefined).
mode is not one of the accepted values, a gl.INVALID_ENUM error is thrown.offset is not a valid multiple of the size of the given type, a gl.INVALID_OPERATION error is thrown.count is negative, a gl.INVALID_VALUE error is thrown.gl.drawElements(gl.POINTS, 8, gl.UNSIGNED_BYTE, 0);
| Specification |
|---|
| WebGL Specification> # 5.14.11> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
drawElements |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 | 8 |
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/drawElements