WEBGL_multi_draw: multiDrawArraysInstancedWEBGL()-Methode
Die WEBGL_multi_draw.multiDrawArraysInstancedWEBGL()
-Methode der WebGL-API rendert mehrere Primitiven aus Array-Daten. Sie ist identisch mit mehreren Aufrufen der gl.drawArraysInstanced()
-Methode.
Syntax
multiDrawArraysInstancedWEBGL(mode,
firstsList, firstsOffset,
countsList, countsOffset,
instanceCountsList, instanceCountsOffset,
drawCount);
Parameter
mode
-
Ein
GLenum
, der den Typ des zu rendenden 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 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.
firstsList
-
Ein
Int32Array
oderArray
(vonGLint
), das eine Liste der Startindizes für die Arrays von Vektorpunkten angibt. firstsOffset
-
Ein
GLuint
, der den Startpunkt imfirstsLists
-Array definiert. countsList
-
Ein
Int32Array
oderArray
(vonGLsizei
), das eine Liste von Zahlen von Indizes angibt, die gerendert werden sollen. countsOffset
-
Ein
GLuint
, der den Startpunkt imcountsList
-Array definiert. instanceCountsList
-
Ein
Int32Array
oderArray
(vonGLsizei
), das eine Liste der Anzahl der Instanzen des Bereichs der auszuführenden Elemente angibt. instanceCountsOffset
-
Ein
GLuint
, der den Startpunkt iminstanceCountsList
-Array definiert. drawCount
-
Ein
GLsizei
, das die Anzahl der Instanzen des Bereichs der auszuführenden Elemente angibt.
Rückgabewert
Keiner.
Ausnahmen
- Wenn
mode
nicht einer der akzeptierten Werte ist, wird eingl.INVALID_ENUM
-Fehler ausgelöst. - Wenn
drawCount
oder Elemente infirstsList
,countsList
oderinstanceCountsList
negativ sind, wird eingl.INVALID_VALUE
-Fehler ausgelöst. - Wenn
gl.CURRENT_PROGRAM
null
ist, 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
Specification |
---|
WebGL WEBGL_multi_draw Extension Specification |
Browser-Kompatibilität
BCD tables only load in the browser