glSecondaryColor

Aus DGL Wiki
(Weitergeleitet von glSecondaryColor3b)
Wechseln zu: Navigation, Suche
Hinweis: Diesem Artikel sollten folgende Bilder beigefügt werden:

(Mehr Informationen/weitere Artikel)
Bildwunsch.jpg
Beispiele der Verwendung mitsamt Code

glSecondaryColor

Name

glSecondaryColor - Setzt die aktuelle Zweitfarbe für ein Vertex.


Delphi-Spezifikationen

procedure glSecondaryColor3b  (red, green, blue: GLbyte); 
procedure glSecondaryColor3d  (red, green, blue: GLdouble); 
procedure glSecondaryColor3f  (red, green, blue: GLfloat); 
procedure glSecondaryColor3i  (red, green, blue: GLint); 
procedure glSecondaryColor3s  (red, green, blue: GLshort); 
procedure glSecondaryColor3ub (red, green, blue: GLubyte); 
procedure glSecondaryColor3ui (red, green, blue: GLuint); 
procedure glSecondaryColor3us (red, green, blue: GLushort); 
procedure glSecondaryColor3bv  (v: PGLByte);  
procedure glSecondaryColor3dv  (v: PGLdouble);  
procedure glSecondaryColor3fv  (v: PGLfloat); 
procedure glSecondaryColor3iv  (v: PGLint); 
procedure glSecondaryColor3sv  (v: PGLshort); 
procedure glSecondaryColor3ubv (v: PGLubyte); 
procedure glSecondaryColor3uiv (v: PGLuint); 
procedure glSecondaryColor3usv (v: PGLushort); 


Parameter

Für alle glSecondaryColor-Befehle, die direkt Werte annehmen (ohne v) :

red, green, blue Setzt den neuen Rot-, Grün- und Blauwert für die aktuelle Zweitfarbe.

Für alle glSecondaryColor-Befehle, die einen Zeiger auf Werte bekommen (mit v) :

v Zeiger auf eine Reihe von Werten, in denen nacheinander der Rot-, Grün- und Blauanteil der neuen Zweitfarbe abgelegt ist.


Beschreibung

Wenn die Beleuchtung (GL_LIGHTING) nicht aktiviert ist, ist es möglich für jedes Vertex, neben glColor, eine zweite Farbe mit glSecondaryColor zu setzen, welche nach der Texturierung auf die Fragmente addiert wird, falls die Farbaddierung mit glEnable GL_COLOR_SUM aktiviert wurde.

glSecondaryColor setzt eine neue RGB-Zweitfarbe, und ist im Gegensatz zu glColor nur in der 3er-Variante verfügbar. Diese gibt Rot-, Grün- und Blauanteil der neuen Zweitfarbe explizit an, während der Alphawert immer auf 0 gesetzt wird (ab GL Version 2.0 ändert sich dieser Defaultwert auf 1).

glSecondaryColor3b, glSecondaryColor3s und glSecondaryColor3i bekommen drei vorzeichenbehaftete Bytes, kurze- oder lange Integerwerte als Argumente. Wenn am Namen der Funktion ein v hängt, bekommen die Befehle ihre Argumente als einen Zeiger auf die Farbkomponenten.

Die aktuellen Zweitfarbwerte werden im Fließkommaformat abgelegt, ohne spezifizierte Mantissen- und Exponentengröße. Vorzeichenlose Integerfarbwerte (falls angegeben) werden linear auf das Fließkommaintervall [0,1] abgebildet. Vorzeichenbehaftete Integerwerte werden linear auf das Fließkommaintervall [-1,1] abgebildet.

Weder Fließkomma, noch vorzeichenbehaftete werden auf das Interval [0,1] beschränkt, bevor die aktuelle Zweitfarbe aktualisiert wird. Farbwerte werden jedoch auf dieses Intervall beschränkt, bevor diese in den Farbpuffer geschrieben werden.


Hinweise

glSecondaryColor ist erst ab OpenGL-Version 1.4 oder höher verfügbar.

Der Vorgabewert für die aktuelle Zweitfarbe ist (0, 0, 0, 0) (ab GL Version 2.0 (0, 0, 0, 1)).

Die aktuelle Zweitfarbe kann zu jeder Zeit geändert werden, auch in einem glBegin-glEnd Block.

Der Aufruf von glSecondaryColor hat keinen Effekt, falls die Beleuchtung mit glEnable(GL_LIGHTING) aktiviert wurde.

Für die Aktivierung der Farbaddierung muss vorher glEnable(GL_COLOR_SUM) aufgerufen werden.


Änderungen

Folgende Erweiterungen hat die Funktion erfahren:

Ab OpenGL-Version 2.0

Der nichtangegebene Alphawert ist nun defaultmässig 1.0, statt 0.0.


Zugehörige Wertrückgaben

glGet mit Token GL_CURRENT_SECONDARY_COLOR
glGet mit Token GL_RGBA_MODE


Siehe auch

glColor, glEnable, glSecondaryColorPointer