WebGLRenderingContext: drawElements() Methode
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.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die WebGLRenderingContext.drawElements()
Methode der WebGL API rendert Primitiven aus Array-Daten.
Syntax
drawElements(mode, count, type, offset)
Parameter
mode
-
Ein
GLenum
, der den Typ des zu rendernden Primitivs angibt. Mögliche Werte sind:gl.POINTS
: Zeichnet einen einzelnen Punkt.gl.LINE_STRIP
: Zeichnet eine gerade Linie zum nächsten Scheitelpunkt.gl.LINE_LOOP
: Zeichnet eine gerade Linie zum nächsten Scheitelpunkt und verbindet den letzten Scheitelpunkt wieder mit dem ersten.gl.LINES
: Zeichnet eine Linie zwischen einem Paar von Scheitelpunkten.gl.TRIANGLE_STRIP
gl.TRIANGLE_FAN
gl.TRIANGLES
: Zeichnet ein Dreieck für eine Gruppe von drei Scheitelpunkten.
count
-
Ein
GLsizei
, der die Anzahl der zu rendernden Elemente des gebundenen Element-Array-Puffers angibt. Zum Beispiel, um ein Drahtgitterdreieck mitgl.LINES
zu zeichnen, sollte die Anzahl 2 Endpunkte pro Linie × 3 Linien = 6 Elemente betragen. Um jedoch dasselbe Drahtgitterdreieck mitgl.LINE_STRIP
zu zeichnen, wiederholt der Element-Array-Puffer nicht die Indizes für das Ende der ersten Linie/den Anfang der zweiten Linie und das Ende der zweiten Linie/den Anfang der dritten Linie, daher wirdcount
vier sein. Um dasselbe Dreieck mitgl.LINE_LOOP
zu zeichnen, wiederholt der Element-Array-Puffer auch nicht den ersten/letzten Scheitelpunkt, daher wirdcount
drei sein. type
-
Ein
GLenum
, der den Typ der Werte im Element-Array-Puffer angibt. Mögliche Werte sind:gl.UNSIGNED_BYTE
gl.UNSIGNED_SHORT
Bei Verwendung der
OES_element_index_uint
Erweiterung:gl.UNSIGNED_INT
offset
-
Ein
GLintptr
, der einen Byte-Offset im Element-Array-Puffer angibt. Muss ein gültiges Vielfaches der Größe des angegebenentype
sein.
Rückgabewert
Keiner (undefined
).
Ausnahmen
- Wenn
mode
nicht einer der akzeptierten Werte ist, wird eingl.INVALID_ENUM
Fehler ausgelöst. - Wenn
offset
kein gültiges Vielfaches der Größe des angegebenen Typs ist, wird eingl.INVALID_OPERATION
Fehler ausgelöst. - Wenn
count
negativ ist, wird eingl.INVALID_VALUE
Fehler ausgelöst.
Beispiele
gl.drawElements(gl.POINTS, 8, gl.UNSIGNED_BYTE, 0);
Spezifikationen
Specification |
---|
WebGL Specification # 5.14.11 |