gl.DrawElements(mode, indicesArray)
gl.DrawElements()
definiert mehrere geometrische Grundelemente mit sehr
wenigen Aufrufen von Unterprogrammen. Anstatt einen GL-Befehl aufzurufen,
um jeden einzelnen Knoten, Normale, Texturkoordinate, Kantenmarkierung
oder Farbe zu übergeben, können Sie separate Felder von Knoten, Normalen
usw. vorgeben und diese verwenden, um eine Sequenz von Grundelementen mit
einem einzigen Aufruf von gl.DrawElements()
zu erstellen.
Wenn gl.DrawElements()
aufgerufen wird, liest es sequentielle Elemente aus
einem aktivierten Feld und erstellt eine Sequenz von geometrischen
Grundelementen. mode
gibt an, welche Art von Grundelemente konstruiert sind
und wie die Feld-Elemente diese Grundelemente konstruieren. mode
kann auf die
symbolischen Konstanten #GL_POINTS
, #GL_LINE_STRIP
, #GL_LINE_LOOP
, #GL_LINES
,
#GL_TRIANGLE_STRIP
, #GL_TRIANGLE_FAN
, #GL_TRIANGLES
, #GL_QUAD_STRIP
, #GL_QUADS
und #GL_POLYGON
gesetzt werden. Wenn mehr als ein Feld aktiviert ist, wird
jedes verwendet. Wenn #GL_VERTEX_ARRAY
nicht aktiviert ist, werden keine
geometrischen Grundelemente konstruiert.
Vertex-Attribute, die durch gl.DrawElements()
geändert werden, haben nach
der Rückgabe von gl.DrawElements()
einen nicht definierten Wert. Wenn
beispielsweise #GL_COLOR_ARRAY
aktiviert ist, ist der Wert der aktuellen
Farbe nach der Ausführung von gl.DrawElements()
undefiniert. Attribute,
die nicht geändert werden, behalten ihre bisherigen Werte bei.
gl.DrawElements()
ist in den Display-Listen enthalten. Wenn gl.DrawElements()
in eine Display-Liste eingetragen wird, werden auch die notwendigen Felddaten
(bestimmt durch die Feldzeiger und Aktivierungen) in die Display-Liste
eingetragen. Da sich die Feldzeiger und Aktivierungen im Klient-seitigen
Status befinden, wirken sich ihre Werte auf die Display-Listen beim
Erstellen der Listen und nicht beim Ausführen der Listen aus.
Weitere Informationen finden Sie in einem OpenGL-Referenzhandbuch.
#GL_UNSIGNED_INT
behandelt.#GL_INVALID_ENUM
wird generiert, wenn der Modus kein akzeptierter Wert ist.
#GL_INVALID_OPERATION
wird erzeugt, wenn ein Name eines Pufferobjekts ungleich
Null an ein aktiviertes Feld oder das Element-Feld gebunden ist und der
Datenspeicher des Pufferobjekts aktuell abgebildet wird.
#GL_INVALID_OPERATION
wird erzeugt, wenn gl.DrawElements()
zwischen
gl.Begin() und gl.End() ausgeführt wird.