glDrawElements-Funktion

Die glDrawElements-Funktion rendert Grundtypen aus Arraydaten.

Syntax

void WINAPI glDrawElements(
         GLenum  mode,
         GLsizei count,
         GLenum  type,
   const GLvoid  *indices
);

Parameter

mode

Die Art der zu rendernden Grundtypen. Er kann einen der folgenden symbolischen Werte annehmen: 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.

count

Die Anzahl der elemente, die gerendert werden sollen.

type

Der Typ der Werte in Indizes. Muss eine der GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT oder GL_UNSIGNED_INT sein.

Indizes

Ein Zeiger auf den Speicherort, an dem die Indizes gespeichert sind.

Rückgabewert

Diese Funktion gibt keinen Wert zurück.

Fehlercodes

Die folgenden Fehlercodes können von der glGetError-Funktion abgerufen werden.

Name Bedeutung
GL_INVALID_ENUM
mode war kein akzeptierter Wert.
GL_INVALID_VALUE
count war ein negativer Wert.
GL_INVALID_OPERATION
Die Funktion wurde zwischen einem Aufruf von glBegin und dem entsprechenden Aufruf von glEnd aufgerufen.

Bemerkungen

Mit der glDrawElements-Funktion können Sie mehrere geometrische Grundtypen mit sehr wenigen Funktionsaufrufen angeben. Anstatt eine OpenGL-Funktion aufzurufen, um jeden einzelnen Scheitelpunkt, jede Normalität oder jede Farbe zu übergeben, können Sie im Voraus separate Arrays von Scheitelpunkten, Normals und Farben angeben und sie verwenden, um eine Sequenz von Grundtypen (alle vom gleichen Typ) mit einem einzigen Aufruf von glDrawElements zu definieren.

Wenn Sie die glDrawElements-Funktion aufrufen , werden sequenzielle Elemente aus Indizes zählen verwendet, um eine Sequenz geometrischer Grundtypen zu erstellen. Der Mode-Parameter gibt an, welche Arten von Grundtypen erstellt werden und wie die Arrayelemente zum Erstellen dieser Grundtypen verwendet werden. Wenn GL_VERTEX_ARRAY nicht aktiviert ist, werden keine geometrischen Grundtypen generiert.

Vertexattribute, die von glDrawElements geändert werden, verfügen nach der Rückgabe von glDrawElements über einen nicht angegebenen Wert. Wenn beispielsweise GL_COLOR_ARRAY aktiviert ist, ist der Wert der aktuellen Farbe nach der Ausführung von glDrawElements nicht definiert. Attribute, die nicht geändert werden, bleiben unverändert.

Sie können die glDrawElements-Funktion in Anzeigelisten einschließen. Wenn glDrawElements in einer Anzeigeliste enthalten ist, werden auch die erforderlichen Arraydaten (bestimmt durch die Arrayzeiger und -aktivierten) in die Anzeigeliste eingegeben. Da die Arrayzeiger und -aktiviert clientseitige Zustandsvariablen sind, wirken sich ihre Werte auf Anzeigelisten aus, wenn die Listen erstellt werden und nicht, wenn die Listen ausgeführt werden.

Hinweis

Die glDrawElements-Funktion ist nur in OpenGL Version 1.1 oder höher verfügbar.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows 2000 Server [nur Desktop-Apps]
Header
Gl.h
Bibliothek
Opengl32.lib
DLL
Opengl32.dll

Weitere Informationen

glArrayElement

glBegin

glColorPointer

glDrawArrays

glEdgeFlagPointer

glEnd

glGetPointerv

glIndexPointer

glNormalPointer

glTexCoordPointer

glVertexPointer