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 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

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
drawElements

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Siehe auch