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

js
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 oder Array (von GLint), der eine Liste von Startindizes für die Arrays von Vectorpunkten angibt.

firstsOffset

Ein GLuint, der den Startpunkt im firstsLists Array definiert.

countsList

Ein Int32Array oder Array (von GLsizei), der eine Liste von Anzahlen von Indizes, die gerendert werden sollen, angibt.

countsOffset

Ein GLuint, der den Startpunkt im countsList Array definiert.

instanceCountsList

Ein Int32Array oder Array (von GLsizei), der eine Liste von Anzahlen von Instanzen des Bereichs von Elementen, die ausgeführt werden sollen, angibt.

instanceCountsOffset

Ein GLuint, der den Startpunkt im instanceCountsList 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 ein gl.INVALID_ENUM Fehler ausgelöst.
  • Wenn drawCount oder Elemente in firstsList, countsList oder instanceCountsList negativ sind, wird ein gl.INVALID_VALUE Fehler ausgelöst.
  • Wenn gl.CURRENT_PROGRAM null ist, wird ein gl.INVALID_OPERATION Fehler ausgelöst.

Beispiele

js
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

Siehe auch