WEBGL_multi_draw: Methode multiDrawArraysInstancedWEBGL()
Eingeschränkt verfügbar
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Want more browser support for this feature? Tell us why.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die Methode WEBGL_multi_draw.multiDrawArraysInstancedWEBGL() der WebGL-API rendert mehrere Primitiven aus Array-Daten. Sie entspricht mehreren Aufrufen der Methode gl.drawArraysInstanced().
Syntax
multiDrawArraysInstancedWEBGL(mode,
firstsList, firstsOffset,
countsList, countsOffset,
instanceCountsList, instanceCountsOffset,
drawCount)
Parameter
mode-
Ein
GLenum, das den Typ der zu rendernden Primitiven 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 zwei Vertices.gl.TRIANGLE_STRIPgl.TRIANGLE_FANgl.TRIANGLES: Zeichnet ein Dreieck aus einer Gruppe von drei Vertices.
firstsList-
Ein
Int32ArrayoderArrayausGLint-Werten, das eine Liste von Startindizes für die Arrays von Vektorpunkten angibt. firstsOffset-
Ein
GLuint, das den Startpunkt im ArrayfirstsListsfestlegt. countsList-
Ein
Int32ArrayoderArrayausGLsizei-Werten, das eine Liste der Anzahlen der zu rendernden Indizes angibt. countsOffset-
Ein
GLuint, das den Startpunkt im ArraycountsListfestlegt. instanceCountsList-
Ein
Int32ArrayoderArrayausGLsizei-Werten, das eine Liste der Anzahlen von Instanzen des auszuführenden Elementbereichs angibt. instanceCountsOffset-
Ein
GLuint, das den Startpunkt im ArrayinstanceCountsListfestlegt. drawCount-
Ein
GLsizei, das die Anzahl der Instanzen des auszuführenden Elementbereichs angibt.
Rückgabewert
Keiner.
Ausnahmen
- Wenn
modekeiner der zulässigen Werte ist, wird eingl.INVALID_ENUM-Fehler ausgelöst. - Wenn
drawCountoder Einträge infirstsList,countsListoderinstanceCountsListnegativ sind, wird eingl.INVALID_VALUE-Fehler ausgelöst. - Wenn
gl.CURRENT_PROGRAMden Wertnullhat, wird eingl.INVALID_OPERATION-Fehler ausgelöst.
Beispiele
const firsts = new Int32Array(/* … */);
const counts = new Int32Array(/* … */);
const instanceCounts = new Int32Array(/* … */);
ext.multiDrawArraysInstancedWEBGL(
gl.TRIANGLES,
firsts,
0,
counts,
0,
instanceCounts,
0,
firsts.length,
);
Spezifikationen
| Spezifikation |
|---|
| WebGL WEBGL_multi_draw Extension Specification> |