WebGLRenderingContext: drawElements() method
Baseline Widely available
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 inWeb Workers.
TheWebGLRenderingContext.drawElements() method of theWebGL API renders primitives from array data.
In this article
Syntax
drawElements(mode, count, type, offset)Parameters
modeA
GLenumspecifying the type primitive to render. Possible valuesare: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, andconnects 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
GLsizeispecifying the number of elements of the bound element arraybuffer to be rendered. For example, to draw a wireframe triangle withgl.LINESthe count should be 2 endpoints per line × 3 lines = 6 elements. However to draw thesame wireframe triangle withgl.LINE_STRIPthe element array buffer does notrepeat the indices for the end of the first line/start of the second line, and end of thesecond line/start of the third line, socountwill be four. To draw the sametriangle withgl.LINE_LOOPthe element array buffer does not repeat thefirst/last vertex either socountwill be three.typeA
GLenumspecifying the type of the values in the element arraybuffer. Possible values are:gl.UNSIGNED_BYTEgl.UNSIGNED_SHORT
When using the
OES_element_index_uintextension:gl.UNSIGNED_INT
offsetA
GLintptrspecifying a byte offset in the element array buffer. Mustbe a valid multiple of the size of the giventype.
Return value
None (undefined).
Exceptions
- If
modeis not one of the accepted values, agl.INVALID_ENUMerror is thrown. - If
offsetis not a valid multiple of the size of the given type, agl.INVALID_OPERATIONerror is thrown. - If
countis negative, agl.INVALID_VALUEerror is thrown.
Examples
gl.drawElements(gl.POINTS, 8, gl.UNSIGNED_BYTE, 0);Specifications
| Specification |
|---|
| WebGL Specification> # 5.14.11> |