Freigeben über


glDrawArrays-Funktion

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

Syntax

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

Parameter

mode

Die Art der zu rendernden Grundtypen. Die folgenden Konstanten geben akzeptable Grundtypen 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_INVALID_VALUE
Anzahl war negativ.
GL_INVALID_ENUM
der Modus war kein akzeptierter Wert.
GL_INVALID_OPERATION
Die Funktion wurde zwischen einem Aufruf von glBegin und dem entsprechenden Aufruf von glEnd aufgerufen.

Bemerkungen

Mit glDrawArrays können Sie mehrere geometrische Grundtypen angeben, die gerendert werden sollen. Anstatt separate OpenGL-Funktionen aufzurufen, um jeden einzelnen Scheitelpunkt, jeden einzelnen Scheitelpunkt oder jede einzelne Farbe zu übergeben, können Sie separate Arrays von Scheitelpunkten, Normalen und Farben angeben, um eine Sequenz von Grundtypen (alle dieselbe Art) mit einem einzelnen Aufruf von glDrawArrays zu definieren.

Wenn Sie glDrawArrays aufrufen, werden sequenzielle Elemente aus jedem aktivierten Array verwendet, um eine Sequenz von geometrischen Grundtypen zu erstellen, beginnend mit dem ersten Element. Der Modusparameter gibt an, welche Art von Primitiven erstellt werden soll und wie die Arrayelemente zum Erstellen der Grundtypen verwendet werden.

Nachdem glDrawArrays zurückgegeben wurde, sind die Werte von Vertexattributen, die von glDrawArrays geändert werden, nicht definiert. Wenn beispielsweise GL_COLOR_ARRAY aktiviert ist, ist der Wert der aktuellen Farbe nach der Rückgabe von glDrawArrays nicht definiert. Attribute, die nicht von glDrawArrays geändert wurden, bleiben definiert. Wenn GL_VERTEX_ARRAY nicht aktiviert ist, werden keine geometrischen Grundwerte generiert, sondern die Attribute, die aktivierten Arrays entsprechen, geändert.

Sie können glDrawArrays in Anzeigelisten einschließen. Wenn Sie glDrawArrays in eine Anzeigeliste aufnehmen, werden die erforderlichen Arraydaten generiert und in die Anzeigeliste eingegeben. Die Werte von Arrayzeigern und -aktivieren werden beim Erstellen 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 der nachfolgenden Aufrufe von glDrawArrays nicht definiert.

Obwohl kein Fehler generiert wird, wenn Sie ein Array mehr als einmal innerhalb von glBegin - und glend-Paaren angeben, sind die Ergebnisse nicht definiert.

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