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

js
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 mit gl.LINES zu zeichnen, sollte die Anzahl 2 Endpunkte pro Linie × 3 Linien = 6 Elemente betragen. Um jedoch dasselbe Drahtgitterdreieck mit gl.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 wird count vier sein. Um dasselbe Dreieck mit gl.LINE_LOOP zu zeichnen, wiederholt der Element-Array-Puffer auch nicht den ersten/letzten Scheitelpunkt, daher wird count 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 angegebenen type sein.

Rückgabewert

Keiner (undefined).

Ausnahmen

  • Wenn mode nicht einer der akzeptierten Werte ist, wird ein gl.INVALID_ENUM Fehler ausgelöst.
  • Wenn offset kein gültiges Vielfaches der Größe des angegebenen Typs ist, wird ein gl.INVALID_OPERATION Fehler ausgelöst.
  • Wenn count negativ ist, wird ein gl.INVALID_VALUE Fehler ausgelöst.

Beispiele

js
gl.drawElements(gl.POINTS, 8, gl.UNSIGNED_BYTE, 0);

Spezifikationen

Specification
WebGL Specification
# 5.14.11

Browser-Kompatibilität

Siehe auch