WEBGL_multi_draw: multiDrawArraysInstancedWEBGL() Methode
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Die WEBGL_multi_draw.multiDrawArraysInstancedWEBGL()
Methode der WebGL-API rendert mehrere Primitive aus Array-Daten. Sie ist identisch mit mehrfachen Aufrufen der gl.drawArraysInstanced()
Methode.
Syntax
multiDrawArraysInstancedWEBGL(mode, firstsList, firstsOffset, countsList, countsOffset, instanceCountsList, instanceCountsOffset, drawCount)
Parameter
mode
-
Ein
GLenum
, das den Typ des Primitivs zum Rendern 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 zurück zum 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
), der eine Liste von Startindizes für die Arrays von Vectorpunkten angibt. firstsOffset
-
Ein
GLuint
, der den Startpunkt imfirstsLists
Array definiert. countsList
-
Ein
Int32Array
oderArray
(vonGLsizei
), der eine Liste von Anzahlen von Indizes, die gerendert werden sollen, angibt. countsOffset
-
Ein
GLuint
, der den Startpunkt imcountsList
Array definiert. instanceCountsList
-
Ein
Int32Array
oderArray
(vonGLsizei
), der eine Liste von Anzahlen von Instanzen des Bereichs von Elementen, die ausgeführt werden sollen, angibt. instanceCountsOffset
-
Ein
GLuint
, der den Startpunkt iminstanceCountsList
Array definiert. drawCount
-
Ein
GLsizei
, der die Anzahl der Instanzen des Bereichs von Elementen, die ausgeführt werden sollen, 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
Loading…