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: Dieses Feature ist verfügbar in Web Workers.

Die WebGLRenderingContext.drawElements()-Methode der WebGL API rendert Primitive aus Array-Daten.

Syntax

js
drawElements(mode, count, type, offset)

Parameter

mode

Ein GLenum, das 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, das die Anzahl der zu rendierenden Elemente des gebundenen Element-Array-Puffers angibt. Zum Beispiel, um ein Drahtgitter-Dreieck mit gl.LINES zu zeichnen, sollte die Anzahl 2 Endpunkte pro Linie × 3 Linien = 6 Elemente sein. Um jedoch dasselbe Drahtgitter-Dreieck mit gl.LINE_STRIP zu zeichnen, wiederholt der Element-Array-Puffer die Indizes für das Ende der ersten Linie/Anfang der zweiten Linie und das Ende der zweiten Linie/Anfang der dritten Linie nicht, sodass count vier sein wird. Um dasselbe Dreieck mit gl.LINE_LOOP zu zeichnen, wird auch der erste/letzte Scheitelpunkt nicht wiederholt, daher wird count drei sein.

type

Ein GLenum, das 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, das 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 einen der akzeptierten Werte hat, 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

BCD tables only load in the browser

Siehe auch