glPushAttrib

Aus DGL Wiki
Version vom 13. September 2004, 10:56 Uhr von Flash (Diskussion | Beiträge) (Fehlermeldungen)

Wechseln zu: Navigation, Suche

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