glPushAttrib
Inhaltsverzeichnis
glPushAttrib, glPopAttrib
Name
glPushAttrib, glPopAttrib - legt bzw. holt Attribute auf bzw. vom Attributstack.
Delphi-Spezifikation
procedure glPushAttrib(mask: TGLbitfield); procedure glPopAttrib;
Parameter
mask | Ist eine Bitfeld das angibt, welche Attribute auf den Attributstack gelegt werden sollen. Wie man einzelne Bits im Bitfeld setzt, finden Sie unter Beschreibung. |
Beschreibung
glPushAttrib nimmt ein Argument, mask, dass angibt, welche Gruppen von Zustandsvariablen der GL auf den Attributstack gelegt werden sollen. Die Bits des Bitfelds mask werden normalerweise durch symbolische Konstanten gesetzt. Dies geschieht, indem man die einzelnen Konstanten mittels or verknüpft.
Möchte man alle speicherbaren Zustände auf den Stack legen, kann man dazu die spezielle Konstante GL_ALL_ATTRIB_BITS benutzen.
Nach der Initialisierung des Attributstacks ist selbiger leer.
glPopAttrib stellt die zuletzt auf den Attributstack abgelegten Zustandsvariablen wieder her. Die Variablen, die nicht auf den Stack gelegt wurden, werden nicht verändert.
Symbolische Konstanten
Es folgen alle akzeptierten Konstanten und die Zustände der GL die sie repräsentieren.
(Die eingerückten Abschnitte bezeichnen die Attribute die auf den Stack abgelegt werden.):
GL_ACCUM_BUFFER_BIT
- Löschwert für den Akkumulationsbuffer
GL_COLOR_BUFFER_BIT
- GL_ALPHA_TEST Aktivierungsbit
- Alphatest Funktionen und Referenzwerte
- GL_BLEND Aktivierungsbit
- Quell- und Zielfunktionen für Blenden
- GL_DITHER Aktivierungsbit
- GL_DRAW_BUFFER Einstellungen
- GL_LOGIC_OP Aktivierungsbit
- Funktion für logische Operationen
- Löschwerte für Farb- und Indexmodus
- Schreibmasken für Farb- und Indexmodus
GL_CURRENT_BIT
- Aktuelle RGBA Farbe
- Aktueller Farbindex
- Aktueller Normalenvektor
- Aktuelle Texturkoordinaten
- Aktuelle Rasterposition
- GL_CURRENT_RASTER_POSITION_VALID Flag
- RGBA Farbe an der aktuellen Rasterposition
- Farbindex an der aktuellen Rasterposition
- Texturkoordinaten an der aktuellen Rasterposition
- GL_EDGE_FLAG Flag
GL_DEPTH_BUFFER_BIT
- GL_DEPTH_TEST Aktivierungsbit
- Tiefentest Funktion
- Löschwert für den Tiefenpuffer
- GL_DEPTH_WRITEMASK Aktivierungsbit
GL_ENABLE_BIT
- GL_ALPHA_TEST Flag
- GL_AUTO_NORMAL Flag
- GL_BLEND Flag
- Aktivierungsbits für die nutzerdefinierten Clipping Planes
- GL_COLOR_MATERIAL
- GL_CULL_FACE Flag
- GL_DEPTH_TEST Flag
- GL_DITHER Flag
- GL_FOG Flag
- GL_LIGHTi wobei 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 Maptyp ist
- GL_MAP2_x wobei x ein Maptyp 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
- GL_TEXTURE_3D Flag
- GL_TEXTURE_GEN_x Flags wobei x = S, T, R oder Q ist.
GL_EVAL_BIT
- GL_MAP1_x Aktivierungsbit wobei x ein Maptyp ist.
- GL_MAP2_x Aktivierungsbit wobei x ein Maptyp ist.
- 1D Gitter Endpunkte und Unterteilungen
- 2D Gitter Endpunkte und Unterteilungen
- GL_AUTO_NORMAL Aktivierungsbit
GL_FOG_BIT
- GL_FOG Aktivierungsbit
- Nebelfarbe
- Nebeldichte
- Lineare Nebelstartweite
- Lineare Nebelendweite
- Nebelindex
- GL_FOG_MODE Wert
GL_HINT_BIT
- GL_PERSPECTIVE_CORRECTION_HINT Einstellung
- GL_POINT_SMOOTH_HINT Einstellung
- GL_LINE_SMOOTH_HINT Einstellung
- GL_POLYGONE_SMOOTH_HINT Einstellung
- GL_FOG_HINT Einstellung
GL_LIGHTING_BIT
- GL_COLOR_MATERIAL Aktivierungsbit
- GL_COLOR_FACE_MATERIAL_FACE Wert
- Farbmaterialparameter, welche die aktuelle Farbe beeinflussen.
- Ambiente Szenenfarbe
- GL_LIGHT_MODEL_LOCAL_VIEWER Wert
- GL_LIGHT_MODEL_TWO_SIDE Einstellung
- GL_LIGHTING Aktivierungsbit
- Aktivierungsbits für jedes Licht
- Ambiente-, Diffuse- und Glanzlichtintensität jedes Licht
- Richtung, Position, Exponent und Streuwinkel für jedes Licht
- Konstante, lineare und quadratische Lichtabschwächungsfaktoren für jedes Licht
- Ambiente-, Diffuse-, Glanzlicht- und Strahlungfarbe für jedes Material.
- Ambiente-, Diffuse- und Glanzlichtfarbindizes für jedes Material
- Glanzexponent für jedes Material
- GL_SHADE_MODEL Einstellungen
GL_LINE_BIT
- GL_LINE_SMOOTH Flag
- GL_LINE_STIPPLE Aktivierungsbit
- Linienpunktierungsmuster und Wiederholungszähler
- 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
- GL_CULL_FACE Aktivierungsbit
- GL_CULL_FACE_MODE Wert
- GL_FRONT_FACE Indikator
- GL_POLYGON_MODE Einstellung
- GL_POLYGON_SMOOTH Flag
- GL_POLYGON_STIPPLE Aktivierungsbit
- GL_POLYGON_OFFSET_FILL Flag
- GL_POLYGON_OFFSET_LINE Flag
- GL_POLYGON_OFFSET_POINT Flag
- GL_POLYGON_OFFSET_FACTOR
- GL_POLYGON_OFFSET_UNITS
GL_POLYGONE_STIPPLE_BIT
- Polygonpunktierungsbild
GL_SCISSOR_BIT
- GL_SCISSOR_TEST Flag
- Scissorbox
GL_STENCIL_BUFFER_BIT
- GL_STENCIL_TEST Aktivierungsbit
- Schablonenfunktion und Referenzwert
- Schablonen-Wertemaske
- Aktionen bei Bestehen und Durchfallen des Stenciltests und Bestehen des Tiefentests Aktionen
- Stencilpuffer Löschwert
- Stencilpuffer Schreibmaske
GL_TEXTURE_BIT
- Aktivierungsbits für die vier Texturkoordinaten
- Randfarbe für jedes Texturbild
- Verkleinerungsfunktion für jedes Texturbild
- Vergrößerungsfunktion für jedes Texturbild
- Texturkoordinaten und Wrapmodus für jedes Texturbild
- Farbe und Modus für jede Texturumgebung
- Aktivierungsbits GL_TEXTURE_GEN_x, x ist dabei S, T, R oder Q
- GL_TEXTURE_GEN_MODE-Einstellungen für S, T, R und Q
- glTexGen Ebenengleichung für S, T, R und Q
- Aktuelle gebundenen Texturen (z.B. GL_TEXTURE_2D_BINDING)
GL_TRANSFORM_BIT
- Koeffizienten der sechs Clippingplanes
- Aktivierungsbit für die vom Benutzer definierten Clippingplanes
- GL_MATRIX_MODE Wert
- GL_NORMALIZE Flag
GL_VIEWPORT_BIT
- Tiefenbereich (nah und fern) (Depth range)
- Sichtfeldursprung und Ausdehnung
Hinweise
Nicht alle Werte können auf den Attributstack abgelegt werden. So können zum Beispiel PixelPack- und UnPack-Zustand, Rendermoduszustand sowie Selctions- und Feedback-Zustand nicht gespeichert werden.
Ein Fehler wird ausgelöst, wenn versucht wird auf einen vollen Attributstack Werte abzulegen, bzw. von einem leeren Stack Werte abzurufen. In beiden Fällen wird das Errorflag gesetzt und es werden keine Änderung an den Zuständen der GL durchgeführt.
Die Tiefe des Attributstack hängt von der Implementierung ab, muss aber mindestens 16 sein.
Fehlermeldungen
GL_STACK_OVERFLOW wird generiert wenn glPushAttrib aufgerufen wird, während der Attributstack voll ist.
GL_STACK_UNDERFLOW wird generiert wenn glPopAttrib aufgerufen wird, während der Attributstack leer ist.
GL_INVALID_OPERATION wird generiert wenn glPushAttrib innerhalb eines glBegin-glEnd Blocks aufgerufen wird.
Zugehörige Wertrückgaben
glGet mit Token GL_ATTRIB_STACK_DEPTH
glGet mit Token GL_MAX_ATTRIB_STACK_DEPTH
Siehe auch
glGet, GetClipPlane, GetError, GetLight, GetMap, GetMaterial, GetPixelMap, GetPolygonStipple, GetString, GetTexEnv, GetTexGen, GetTexImage, GetTexLevelParameter, GetTexParameter, IsEnabled