glPushAttrib-Funktion
Pusht den Attributstapel.
Syntax
void WINAPI glPushAttrib(
GLbitfield mask
);
Parameter
-
mask
-
Eine Maske, die angibt, welche Attribute gespeichert werden sollen. Die symbolischen Maskenkonstanten und der zugehörige OpenGL-Zustand sind wie folgt (die eingezogenen Absätze enthalten, welche Attribute gespeichert werden):
-
GL_ACCUM_BUFFER_BIT
-
Wert des Akkumulationspuffers löschen
-
GL_COLOR_BUFFER_BIT
-
GL_ALPHA_TEST Bit aktivieren
Alphatestfunktion und Referenzwert
GL_BLEND Bit aktivieren
Mischen von Quell- und Zielfunktionen
GL_DITHER Bit aktivieren
GL_DRAW_BUFFER Einstellung
GL_LOGIC_OP Bit aktivieren
Logikbetriebsfunktion
Klare Werte im Farbmodus und im Indexmodus
Farbmodus- und Indexmodus-Schreibmasken
-
GL_CURRENT_BIT
-
Aktuelle RGBA-Farbe
Aktueller Farbindex
Aktueller Normalvektor
Aktuelle Texturkoordinaten
Aktuelle Rasterposition GL_CURRENT_RASTER_POSITION_VALID Flag
RGBA-Farbe, die der aktuellen Rasterposition zugeordnet ist
Farbindex, der der aktuellen Rasterposition zugeordnet ist
Texturkoordinaten, die der aktuellen Rasterposition zugeordnet sind
GL_EDGE_FLAG Flag
-
GL_DEPTH_BUFFER_BIT
-
GL_DEPTH_TEST Bit aktivieren
Tiefenpuffertestfunktion
Wert des Tiefenpuffers "Clear"
GL_DEPTH_WRITEMASK Bit aktivieren
-
GL_ENABLE_BIT
-
GL_ALPHA_TEST Flag
GL_AUTO_NORMAL Flag
GL_BLEND Flag
Aktivieren von Bits für die vom Benutzer definierbaren Clippingebenen
GL_COLOR_MATERIAL
GL_CULL_FACE Flag
GL_DEPTH_TEST Flag
GL_DITHER Flag
GL_FOG Flag
GL_LIGHTi where 0 <= i< GL_MAX_LIGHTS
GL_LIGHTING Flag
GL_LINE_SMOOTH Flag
GL_LINE_STIPPLE Flag
GL_COLOR_LOGIC_OP Flag
GL_INDEX_LOGIC_OP Flag
GL_MAP1_x, wobei x ein Kartentyp ist
GL_MAP2_x, wobei x ein Kartentyp ist
GL_NORMALIZE Flag
GL_POINT_SMOOTH Flag
GL_POLYGON_OFFSET_LINE Flag
GL_POLYGON_OFFSET_FILL Flag
GL_POLYGON_OFFSET_POINT Flag
GL_POLYGON_SMOOTH Flag
GL_POLYGON_STIPPLE Flag
GL_SCISSOR_TEST Flag
GL_STENCIL_TEST Flag
GL_TEXTURE_1D Flag
GL_TEXTURE_2D Flag
Flags GL_TEXTURE_GEN_x, wobei x S, T, R oder Q ist
-
GL_EVAL_BIT
-
GL_MAP1_x Bits aktivieren, wobei x ein Zuordnungstyp ist
GL_MAP2_x Bits aktivieren, wobei x ein Kartentyp ist
1D-Rasterendpunkte und -divisionen
2D-Rasterendpunkte und -divisionen
GL_AUTO_NORMAL Bit aktivieren
-
GL_FOG_BIT
-
flag GL_FOG aktivieren
Nebelfarbe
Nebeldichte
Linearer Nebelstart
Lineares Nebelende
Nebelindex
GL_FOG_MODE Wert
-
GL_HINT_BIT
-
GL_PERSPECTIVE_CORRECTION_HINT Einstellung
GL_POINT_SMOOTH_HINT Einstellung
GL_LINE_SMOOTH_HINT Einstellung
GL_POLYGON_SMOOTH_HINT Einstellung
GL_FOG_HINT Einstellung
-
GL_LIGHTING_BIT
-
GL_COLOR_MATERIAL Bit aktivieren
GL_COLOR_MATERIAL_FACE Wert
Farbmaterialparameter, die die aktuelle Farbe nachverfolgen
Umgebungsszenefarbe
GL_LIGHT_MODEL_LOCAL_VIEWER Wert
GL_LIGHT_MODEL_TWO_SIDE Einstellung
GL_LIGHTING Bit aktivieren
Bit für jedes Licht aktivieren
Umgebungs-, Diffuse- und Spiegelintensität für jedes Licht
Richtung, Position, Exponent und Abschneidwinkel für jedes Licht
Konstante, lineare und quadratische Dämpfungsfaktoren für jedes Licht
Umgebungs-, Diffus-, Glanz- und Emissionsfarbe für jedes Material
Umgebungs-, Diffus- und Glanzfarbindizes für jedes Material
Spiegel-Exponent für jedes Material GL_SHADE_MODEL Einstellung
-
GL_LINE_BIT
-
GL_LINE_SMOOTH-Flag
bit GL_LINE_STIPPLE aktivieren
Linienstipplemuster und Wiederholungsindikator
Linienstärke
-
GL_LIST_BIT
-
GL_LIST_BASE Einstellung
-
GL_PIXEL_MODE_BIT
-
GL_RED_BIAS- und GL_RED_SCALE-Einstellungen
GL_GREEN_BIAS- und GL_GREEN_SCALE werte
GL_BLUE_BIAS und GL_BLUE_SCALE
GL_ALPHA_BIAS und GL_ALPHA_SCALE
GL_DEPTH_BIAS und GL_DEPTH_SCALE
GL_INDEX_OFFSET und GL_INDEX_SHIFT Werte
GL_MAP_COLOR- und GL_MAP_STENCIL-Flags
GL_ZOOM_X und GL_ZOOM_Y Faktoren
GL_READ_BUFFER Einstellung
-
GL_POINT_BIT
-
GL_POINT_SMOOTH-Flag
Punktgröße
-
GL_POLYGON_BIT
-
bit GL_CULL_FACE aktivieren
GL_CULL_FACE_MODE Wert
GL_FRONT_FACE Indikator
GL_POLYGON_MODE Einstellung
GL_POLYGON_SMOOTH-Flag
GL_POLYGON_STIPPLE Bit aktivieren
GL_POLYGON_OFFSET_FILL-Flag
GL_POLYGON_OFFSET_LINE-Flag
GL_POLYGON_OFFSET_POINT-Flag
GL_POLYGON_OFFSET_FACTOR
GL_POLYGON_OFFSET_UNITS
-
GL_POLYGON_STIPPLE_BIT
-
Polygon-Stipplebild
-
GL_SCISSOR_BIT
-
GL_SCISSOR_TEST-Flag
Scherenbox
-
GL_STENCIL_BUFFER_BIT
-
bit GL_STENCIL_TEST aktivieren
Schablonenfunktion und Referenzwert
Schablonenwertmaske
Schablonenfehler-, Pass- und Tiefenpufferdurchlaufaktionen
Wert des Schablonenpuffers clear
Schablonenpufferschreibmaske
-
GL_TEXTURE_BIT
-
Aktivieren von Bits für die vier Texturkoordinaten
Rahmenfarbe für jedes Texturbild
Minimierungsfunktion für jedes Texturbild
Vergrößerungsfunktion für jedes Texturbild
Texturkoordinaten und Umbruchmodus für jedes Texturbild
Farbe und Modus für jede Texturumgebung
Bits GL_TEXTURE_GEN_x aktivieren; x ist S, T, R und Q
GL_TEXTURE_GEN_MODE Einstellung für S, T, R und Q
glTexGen-Ebenengleichungen für S, T, R und Q
-
GL_TRANSFORM_BIT
-
Koeffizienten der sechs Clippingebenen
Aktivieren von Bits für die vom Benutzer definierbaren Clippingebenen
GL_MATRIX_MODE Wert
GL_NORMALIZE-Flag
-
GL_VIEWPORT_BIT
-
Tiefenbereich (nah und fern)
Viewport-Ursprung und -Ausdehnung
-
Rückgabewert
Diese Funktion gibt keinen Wert zurück.
Fehlercodes
Die folgenden Fehlercodes können von der glGetError-Funktion abgerufen werden.
Name | Bedeutung |
---|---|
|
Die Funktion wurde aufgerufen, während der Attributstapel voll war. |
|
Die Funktion wurde zwischen einem Aufruf von glBegin und dem entsprechenden Aufruf von glEnd aufgerufen. |
Bemerkungen
Die glPushAttrib-Funktion akzeptiert ein Argument, eine Maske, die angibt, welche Gruppen von Zustandsvariablen im Attributstapel gespeichert werden sollen. Symbolische Konstanten werden verwendet, um Bits in der Maske festzulegen. Der Mask-Parameter wird in der Regel erstellt, indem der logische OR-Vorgang auf mehrere dieser Konstanten angewendet wird. Sie können die spezielle Maske GL_ALL_ATTRIB_BITS verwenden, um alle stapelbaren Zustände zu speichern.
Die glPopAttrib-Funktion stellt die Werte der Zustandsvariablen wieder her, die mit dem letzten glPushAttrib-Befehl gespeichert wurden. Nicht gespeicherte Werden bleiben unverändert.
Es ist ein Fehler, Attribute auf einen vollständigen Stapel zu pushen oder Attribute aus einem leeren Stapel zu löschen. In beiden Fällen wird das Fehlerflag festgelegt, und es wird keine andere Änderung am OpenGL-Zustand vorgenommen.
Anfangs ist der Attributstapel leer.
Nicht alle Werte für den OpenGL-Zustand können im Attributstapel gespeichert werden. Beispielsweise können Sie pixelpack und unpack state, render mode state, select and feedback state nicht speichern.
Die Tiefe des Attributstapels hängt von der Implementierung ab, muss aber mindestens 16 sein.
Die folgenden Funktionen rufen Informationen im Zusammenhang mit glPushAttrib und glPopAttrib ab:
glGet mit Argument GL_ATTRIB_STACK_DEPTH
glGet mit argument GL_MAX_ATTRIB_STACK_DEPTH
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) |
Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) |
Windows 2000 Server [nur Desktop-Apps] |
Header |
|
Bibliothek |
|
DLL |
|