Bezeichnung
gl.VertexPointer -- definiert ein Feld von Scheitelpunktdaten
Übersicht
gl.VertexPointer(vertexArray[, size])
Beschreibung
gl.VertexPointer() gibt ein Feld von Vertex-Koordinaten an, die beim Rendern verwendet werden sollen. vertexArray kann entweder eine eindimensionale Tabelle sein, die aus einer beliebigen Anzahl von aufeinanderfolgenden Knotenkoordinaten besteht, oder eine zweidimensionale Tabelle, die aus einer beliebigen Anzahl von Untertabellen besteht, die jeweils 2 bis 4 Texturkoordinaten enthalten. Wenn vertexArray eine eindimensionale Tabelle ist, müssen Sie auch das optionale Argument size übergeben, um die Anzahl der Knotenkoordinaten pro Feld-Element zu definieren. Wenn vertexArray eine zweidimensionale Tabelle ist, wird size automatisch durch die Anzahl der Elemente in der ersten Untertabelle bestimmt, die ebenfalls im Bereich von 2 bis 4 liegen müssen.

Bei der Verwendung einer zweidimensionalen Tabelle ist zu beachten, dass die Anzahl der Knotenkoordinaten in jeder Untertabelle konstant sein muss. Es ist nicht erlaubt, in den einzelnen Untertabellen eine unterschiedliche Anzahl von Knotenkoordinaten zu verwenden. Die Anzahl der Knotenkoordinaten wird durch die Anzahl der Elemente in der ersten Untertabelle definiert und alle folgenden Untertabellen müssen die gleiche Anzahl von Koordinaten verwenden.

Wenn Sie Nil in vertexArray übergeben, wird der Inhalt des Vertex-Koordinaten-Feld-Puffer gelöscht, aber er wird nicht aus OpenGL entfernt. Dies muss manuell erfolgen, z.B. durch Deaktivieren des Vertex-Koordinaten-Feldes oder durch Definieren eines neuen.

Um ein Vertex-Feld zu aktivieren und zu deaktivieren, rufen Sie den Befehl gl.EnableClientState() und gl.DisableClientState() mit dem Argument #GL_VERTEX_ARRAY auf. Wenn aktiviert, wird Vertex-Array verwendet, wenn gl.DrawArrays(), gl.DrawElements() oder gl.ArrayElement() aufgerufen wird.

Das Vertex-Feld ist zunächst deaktiviert und wird nicht aufgerufen, wenn gl.DrawArrays(), gl.DrawElements() oder gl.ArrayElement() aufgerufen wird.

Die Ausführung von gl.VertexPointer() ist zwischen der Ausführung von gl.Begin() und gl.End() nicht erlaubt. Dabei kann ein Fehler auftreten oder auch nicht. Wenn kein Fehler erzeugt wird, ist der Vorgang undefiniert.

gl.VertexPointer() wird typischerweise auf der Klient-Seite implementiert.

Vertex-Feld-Parameter sind klient-seitige Zustände und werden daher nicht durch gl.PushAttrib() und gl.PopAttrib() gespeichert oder wiederhergestellt. Benutzen Sie stattdessen gl.PushClientAttrib() und gl.PopClientAttrib().

Weitere Informationen finden Sie in einem OpenGL-Referenzhandbuch.

Eingaben
vertexArray
ein- oder zweidimensionale Tabelle mit Knotenkoordinaten oder Nil (siehe oben)
size
optional: Vertexkoordinaten pro Feld-Element; muss zwischen 2 und 4 liegen und wird nur bei eindimensionalen Tabellen (siehe oben) verwendet
Fehler
#GL_INVALID_VALUE wird erzeugt, wenn size nicht 2, 3, oder 4 ist.

Verbundene get-operationen
gl.IsEnabled() mit dem Argument #GL_VERTEX_ARRAY

gl.Get() mit dem Argument #GL_VERTEX_ARRAY_SIZE

gl.Get() mit dem Argument #GL_VERTEX_ARRAY_TYPE

gl.Get() mit dem Argument #GL_VERTEX_ARRAY_STRIDE

gl.GetPointer() mit dem Argument #GL_VERTEX_ARRAY_POINTER


Navigation zeigen