gl.ColorPointer(colorArray[, size])
gl.ColorPointer()
gibt ein Feld von Farbkomponenten an, die beim Rendern
verwendet werden sollen. colorArray
kann entweder eine eindimensionale
Tabelle sein, die aus einer beliebigen Anzahl von aufeinanderfolgenden
Farbwerten besteht, oder eine zweidimensionale Tabelle, die aus einer
beliebigen Anzahl von Untertabellen besteht, die jeweils 3 oder 4 Farbwerte
enthalten. Wenn colorArray
eine eindimensionale Tabelle ist, müssen Sie
auch das optionale Argument size
übergeben, um die Größe jeder
Farbkomponente in colorArray
zu definieren. size
muss entweder 3 oder 4
sein. Wenn colorArray
eine zweidimensionale Tabelle ist, wird size
automatisch durch die Anzahl der Elemente in der ersten Untertabelle
bestimmt, die entweder 3 oder 4 sein muss.
Beachten Sie bei der Verwendung einer zweidimensionalen Tabelle, dass die Anzahl der Farbwerte in jeder Untertabelle konstant sein muss. In den einzelnen Untertabellen dürfen keine unterschiedlichen Farbwerte verwendet werden. Die Anzahl der Farbwerte wird durch die Anzahl der Elemente in der ersten Untertabelle definiert und alle folgenden Untertabellen müssen die gleiche Anzahl an Farbwerten verwenden.
Wenn Sie Nil
in colorArray
übergeben, wird der Farbfeldpuffer freigegeben,
aber er wird nicht aus OpenGL entfernt. Sie müssen dies manuell tun, z.B.
indem Sie das Farbfeld deaktivieren oder ein neues definieren.
Um das Farbfeld zu aktivieren und zu deaktivieren, rufen Sie gl.EnableClientState()
und gl.DisableClientState() mit dem Argument
#GL_COLOR_ARRAY
auf. Wenn es aktiviert ist, wird das Farbfeld verwendet, wenn
gl.DrawArrays(), gl.DrawElements()
oder gl.ArrayElement() aufgerufen wird.
Das Farbfeld ist zunächst deaktiviert und wird nicht aufgerufen, wenn gl.DrawArrays(), gl.DrawElements() oder gl.ArrayElement() aufgerufen wird.
Die Ausführung von gl.ColorPointer()
ist zwischen gl.Begin()
und gl.End() nicht erlaubt, aber ein Fehler kann oder
kann nicht erzeugt werden. Wenn kein Fehler generiert wird, ist die
Operation nicht definiert.
gl.ColorPointer()
wird typischerweise auf der Klient-Seite implementiert.
Farbfeld-Parameter sind Klientseitig und werden daher nicht von gl.PushAttrib() und gl.PopAttrib() gespeichert oder wiederhergestellt. Verwenden Sie stattdessen gl.PushClientAttrib() und gl.PopClientAttrib().
Weitere Informationen finden Sie in einem OpenGL-Referenzhandbuch.
Nil
(siehe oben)#GL_INVALID_VALUE
wird generiert, wenn die Größe nicht 3 oder 4 ist.
#GL_COLOR_ARRAY
gl.Get() mit dem Argument #GL_COLOR_ARRAY_SIZE
gl.Get() mit dem Argument #GL_COLOR_ARRAY_TYPE
gl.Get() mit dem Argument #GL_COLOR_ARRAY_STRIDE
gl.Get() mit dem Argument #GL_COLOR_ARRAY_POINTER