glDrawArrays-Funktion

Die glDrawArrays-Funktion gibt mehrere primitive Typen an, die gerendert werden sollen.

Syntax

void WINAPI glDrawArrays(
   GLenum  mode,
   GLint   first,
   GLsizei count
);

Parameter

mode

Die Art von primitiven Typen, die gerendert werden sollen. Die folgenden Konstanten geben zulässige Typen von Primitiven an: 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.

first

Der Startindex in den aktivierten Arrays.

count

Die Anzahl der zu rendernden Indizes.

Rückgabewert

Diese Funktion gibt keinen Wert zurück.

Fehlercodes

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

Name Bedeutung
GL _ UNGÜLTIGER _ WERT
count war negativ.
GL _ INVALID _ ENUM
mode war kein akzeptierter Wert.
GL _ INVALID _ OPERATION
Die Funktion wurde zwischen einem Aufruf von glBegin und dem entsprechenden Aufruf von glEndaufgerufen.

Bemerkungen

Mit glDrawArrays können Sie mehrere geometrische Primitive angeben, die gerendert werden sollen. Anstatt separate OpenGL-Funktionen aufzurufen, um jeden einzelnen Scheitelpunkt, jede Normale oder Farbe zu übergeben, können Sie separate Arrays von Scheitelpunkten, Normalitäten und Farben angeben, um eine Sequenz von Primitiven (alle gleich) mit einem einzigen Aufruf von glDrawArrays zu definieren.

Wenn Sie glDrawArrays aufrufen, werden sequenzielle Elemente aus jedem aktivierten Array gezählt, um eine Sequenz geometrischer Primitive zu erstellen, beginnend mit dem ersten Element. Der mode-Parameter gibt an, welche Art primitiver Elemente erstellt werden soll und wie die Arrayelemente verwendet werden, um die Primitiven zu erstellen.

Nachdem glDrawArrays zurückgegeben wurde, sind die Werte von Vertexattributen, die von glDrawArrays geändert werden, nicht definiert. Wenn z. B. GL _ COLOR _ ARRAY aktiviert ist, ist der Wert der aktuellen Farbe nicht definiert, nachdem glDrawArrays zurückgegeben wurde. Attribute, die nicht durch glDrawArrays geändert werden, bleiben definiert. Wenn GL _ VERTEX _ ARRAY nicht aktiviert ist, werden keine geometrischen Primitive generiert, aber die Attribute, die aktivierten Arrays entsprechen, werden geändert.

Sie können glDrawArrays in Anzeigelisten einschließen. Wenn Sie glDrawArrays in eine Anzeigeliste einschließen, werden die erforderlichen Arraydaten, die durch die Arrayzeiger und die Aktivierten bestimmt werden, generiert und in die Anzeigeliste eingegeben. Die Werte von Arrayzeigern und -aktivierten werden während der Erstellung von Anzeigelisten bestimmt.

Sie können statische Arraydaten jederzeit lesen. Wenn statische Arrayelemente geändert werden und das Array nicht erneut angegeben wird, sind die Ergebnisse aller nachfolgenden Aufrufe von glDrawArrays nicht definiert.

Obwohl kein Fehler generiert wird, wenn Sie ein Array mehr als einmal in glBegin- und -paaren angeben, sind die Ergebnisse nicht definiert.

Requirements (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

glEdgeFlagPointer

glEnd

glGetPointerv

glGetString

glIndexPointer

glNormalPointer

glTexCoordPointer

glVertexPointer