glVertexPointer-Funktion

Die glVertexPointer-Funktion definiert ein Array von Vertexdaten.

Syntax

void WINAPI glVertexPointer(
         GLint   size,
         GLenum  type,
         GLsizei stride,
   const GLvoid  *pointer
);

Parameter

size

Die Anzahl der Koordinaten pro Scheitelpunkt. Der Wert der Größe muss 2, 3 oder 4 sein.

type

Der Datentyp jeder Koordinate im Array mit den folgenden symbolischen Konstanten: GL_SHORT, GL_INT, GL_FLOAT und GL_DOUBLE.

Schritt

Der Byteoffset zwischen aufeinanderfolgenden Scheitelpunkten. Wenn stride null ist, werden die Scheitelpunkte eng im Array gepackt.

Zeiger

Ein Zeiger auf die erste Koordinate des ersten Scheitelpunkts im Array.

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
Die Größe war nicht 2, 3 oder 4.
GL_INVALID_ENUM
type war kein akzeptierter Wert.
GL_INVALID_VALUE
stride oder count war negativ.

Bemerkungen

Die glVertexPointer-Funktion gibt den Speicherort und die Daten eines Arrays von Vertexkoordinaten an, die beim Rendern verwendet werden sollen. Der Size-Parameter gibt die Anzahl der Koordinaten pro Scheitelpunkt an. Der type-Parameter gibt den Datentyp jeder Vertexkoordinate an. Der stride-Parameter bestimmt den Byteoffset von einem Scheitelpunkt zum nächsten und ermöglicht das Packen von Scheitelpunkten und Attributen in einem einzelnen Array oder Speicher in separaten Arrays. In einigen Implementierungen kann das Speichern der Scheitelpunkte und Attribute in einem einzelnen Array effizienter sein als die Verwendung separater Arrays (siehe glInterleavedArrays).

Ein Vertexarray wird aktiviert, wenn Sie die GL_VERTEX_ARRAY Konstante mit glEnableClientState angeben. Wenn aktiviert, verwenden glDrawArrays, glDrawElements und glArrayElement das Vertexarray. Standardmäßig ist das Vertexarray deaktiviert.

Sie können glVertexPointer nicht in Anzeigelisten einschließen.

Wenn Sie ein Vertexarray mithilfe von glVertexPointer angeben, werden die Werte aller Vertexarrayparameter der Funktion in einem clientseitigen Zustand gespeichert, und statische Arrayelemente können zwischengespeichert werden. Da die Vertexarrayparameter clientseitig sind, werden ihre Werte nicht von glPushAttrib und glPopAttrib gespeichert oder wiederhergestellt.

Obwohl kein Fehler generiert wird, wenn Sie glVertexPointer innerhalb der GlBegin - und glEnd-Paare aufrufen, sind die Ergebnisse nicht definiert.

Die folgenden Funktionen rufen Informationen im Zusammenhang mit glVertexPointer ab:

glGet mit Argument GL_VERTEX_ARRAY_SIZE

glGet mit Argument GL_VERTEX_ARRAY_STRIDE

glGet mit Argument GL_VERTEX_ARRAY_COUNT

glGet mit argument GL_VERTEX_ARRAY_TYPE

glGetPointerv mit Argument GL_VERTEX_ARRAY_POINTER

glIsEnabled mit Argument GL_VERTEX_ARRAY

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

glColorPointer

glDrawArrays

glEdgeFlagPointer

glEnableClientState

glGetPointerv

glGetString

glIndexPointer

glIsEnabled

glNormalPointer

glTexCoordPointer