Bezeichnung
gl.DrawElements -- rendert Grundelement aus Felddaten
Übersicht
gl.DrawElements(mode, indicesArray)
Beschreibung
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.

Eingaben
mode
gibt an, welche Art von Grundelemente gerendert werden sollen (siehe oben)
indicesArray
definiert ein Feld, in dem die Indizes gespeichert sind; die Indizes in diesem Feld werden als Werte vom Typ #GL_UNSIGNED_INT behandelt.
Fehler
#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.


Navigation zeigen