WEBGL_multi_draw: multiDrawElementsWEBGL()-Methode

Die WEBGL_multi_draw.multiDrawElementsWEBGL()-Methode des WebGL API rendert mehrere Primitiven aus Array-Daten. Sie ist identisch mit mehreren Aufrufen der gl.drawElements()-Methode.

Syntax

js
multiDrawElementsWEBGL(mode,
    countsList, countsOffset,
    type,
    firstsList, firstsOffset,
    drawCount);

Parameter

mode

Ein GLenum, der den Typ des zu renderten Primitivs angibt. Mögliche Werte sind:

  • gl.POINTS: Zeichnet einen einzelnen Punkt.
  • gl.LINE_STRIP: Zeichnet eine gerade Linie zum nächsten Vertex.
  • gl.LINE_LOOP: Zeichnet eine gerade Linie zum nächsten Vertex und verbindet den letzten Vertex mit dem ersten.
  • gl.LINES: Zeichnet eine Linie zwischen einem Paar von Vertexen.
  • gl.TRIANGLE_STRIP
  • gl.TRIANGLE_FAN
  • gl.TRIANGLES: Zeichnet ein Dreieck für eine Gruppe von drei Vertexen.
countsList

Ein Int32Array oder Array (von GLint), das eine Liste von Anzahlen von zu rendernden Indizes angibt.

countsOffset

Ein GLUint, das den Startpunkt im countsList-Array definiert.

type

Ein GLenum, das den Typ der Werte im Element-Array-Buffer angibt. Mögliche Werte sind:

offsetsList

Ein Int32Array oder Array (von GLsizei), das eine Liste von Startindizes für die Arrays von Vektorpunkten angibt.

offsetsOffset

Ein GLuint, das den Startpunkt im offsetsList-Array definiert.

drawCount

Ein GLsizei, das die Anzahl der Instanzen des Bereichs von Elementen angibt, die ausgeführt werden sollen.

Rückgabewert

Keiner.

Ausnahmen

  • Wenn mode nicht einer der akzeptierten Werte ist, wird ein gl.INVALID_ENUM-Fehler ausgelöst.
  • Wenn drawCount oder Elemente in countsList oder offsetsList negativ sind, wird ein gl.INVALID_VALUE-Fehler ausgelöst.

Beispiele

js
const counts = new Int32Array(/* … */);
const offsets = new Int32Array(/* … */);
ext.multiDrawElementsWEBGL(
  gl.TRIANGLES,
  counts,
  0,
  gl.UNSIGNED_SHORT,
  offsets,
  0,
  counts.length,
);

Spezifikationen

Specification
WebGL WEBGL_multi_draw Extension Specification

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch