gl.PushAttrib(mask)
gl.PushAttrib()
verwendet eine Maske als Argument, die angibt, welche
Gruppen von Statusvariablen im Attributstapel gespeichert werden sollen.
Symbolische Konstanten werden verwendet, um Bits in der Maske zu setzen.
Die Maske wird typischerweise durch O-Ring aus mehreren dieser Konstanten
zusammengesetzt. Die spezielle Maske #GL_ALL_ATTRIB_BITS
kann verwendet
werden, um alle stapelbaren Zustände zu speichern.
Die symbolischen Maskenkonstanten und der damit verbundene GL-Status sind wie folgt:
#GL_ACCUM_BUFFER_BIT
#GL_COLOR_BUFFER_BIT
#GL_ALPHA_TEST
Freigabebit
Alpha-Testfunktion und Referenzwert
#GL_BLEND
Freigabebit
Zusammenführung von Quell- und Zielfunktionen
Konstante Mischfarbe
Mischungsgleichung
#GL_DITHER
Freigabebit
#GL_DRAW_BUFFER
Einstellung
#GL_COLOR_LOGIC_OP
Freigabebit
#GL_INDEX_LOGIC_OP
Freigabebit
Logik-Op-Funktion
Farbmodus und Indexmodus Werte löschen
Farbmodus- und Indexmodus-Schreibmasken
#GL_CURRENT_BIT
Aktueller Farbindex
Aktueller Standardvektor
Aktuelle Texturkoordinaten
Aktuelle Rasterposition
#GL_CURRENT_RASTER_POSITION_VALID
Flag
RGBA-Farbe, die der aktuellen Rasterposition zugeordnet ist
Farbindex zugeordnet zur aktuellen Rasterposition
Texturkoordinaten, die der aktuellen Rasterposition zugeordnet sind
#GL_EDGE_FLAG
Flag
#GL_DEPTH_BUFFER_BIT
#GL_DEPTH_TEST
Freigabebit
Tiefenpuffer-Testfunktion
Tiefenpuffer Löschwert
#GL_DEPTH_WRITEMASK
Freigabebit
#GL_ENABLE_BIT
#GL_ALPHA_TEST
Flag
#GL_AUTO_NORMAL
Flag
#GL_BLEND
Flag
Aktivierungsbits für die benutzerdefinierbaren Ausschnittebenen
#GL_COLOR_MATERIAL
#GL_CULL_FACE
Flag
#GL_DEPTH_TEST
Flag
#GL_DITHER
Flag
#GL_FOG
Flag
#GL_LIGHTi
wobei 0 .le. 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 ein S, T, R, oder Q ist
#GL_EVAL_BIT
#GL_MAP1_x
Aktivierungsbits, wobei x ein Kartentyp ist
#GL_MAP2_x
Aktivierungsbits, wobei x ein Kartentyp ist
1D Gitterendpunkte und -teilungen
2D Gitterendpunkte und -teilungen
#GL_AUTO_NORMAL
Freigabebit
#GL_FOG_BIT
#GL_FOG
Freigabebit
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
Freigabebit
#GL_COLOR_MATERIAL_FACE
Wert
Farbmaterialparameter, die der aktuellen Farbe folgen
Farbe der Umgebungsszene
#GL_LIGHT_MODEL_LOCAL_VIEWER
Wert
#GL_LIGHT_MODEL_TWO_SIDE
Einstellung
#GL_LIGHTING
Freigabebit
Freigabebit für jede Leuchte
Umgebungs-, Diffus- und Spiegelintensität für jedes Licht
Richtung, Position, Exponent und Cutoff-Winkel für jede Leuchte
Konstante, lineare und quadratische Dämpfungsfaktoren für jedes Licht
Umgebungs-, diffuse, spiegelnde und emissive Farbe für jedes Material
Umgebungs-, Diffus- und Spiegel-Farbindizes für jedes Material
Spiegelexponent für jedes Material
#GL_SHADE_MODEL
Einstellung
#GL_LINE_BIT
#GL_LINE_SMOOTH
Flag
#GL_LINE_STIPPLE
Freigabebit
Linien-Punktemuster und Wiederholungszähler
Linienbreite
#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
Werte
#GL_ALPHA_BIAS
und #GL_ALPHA_SCALE
Werte
#GL_DEPTH_BIAS
und #GL_DEPTH_SCALE
Werte
#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
Freigabebit
#GL_CULL_FACE_MODE
Wert
#GL_FRONT_FACE
Indikator
#GL_POLYGON_MODE
Einstellung
#GL_POLYGON_SMOOTH
Flag
#GL_POLYGON_STIPPLE
Freigabebit
#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
#GL_SCISSOR_BIT
#GL_SCISSOR_TEST
Flag
Scherenkasten
#GL_STENCIL_BUFFER_BIT
#GL_STENCIL_TEST
Freigabebit
Schablonenfunktion und Referenzwert
Schablonenwertmaske
Schablonenfehler, Durchlauf und Tiefenpuffer Durchlaufaktionen
Schablonenpuffer Löschwert
Schablonenpuffer Schreibmaske
#GL_TEXTURE_BIT
Rahmenfarbe für jedes Texturbild
Verkleinerungsfunktion für jedes Texturbild
Vergrößerungsfunktion für jedes Texturbild
Texturkoordinaten und Wrap-Modus für jedes Texturbild
Farbe und Modus für jede Texturumgebung
Freigabebits #GL_TEXTURE_GEN_x
, x ist S, T, R und Q
#GL_TEXTURE_GEN_MODE
Einstellung für S, T, R und Q
gl.TexGen() Ebenengleichungen für S, T, R und Q
Aktuelle Texturbindungen (z.B., #GL_TEXTURE_2D_BINDING
)
#GL_TRANSFORM_BIT
Aktivierungsbits für die benutzerdefinierbaren Ausschnittebenen
#GL_MATRIX_MODE
Wert
#GL_NORMALIZE
Flag
#GL_VIEWPORT_BIT
Ansichtsfenster Ursprung und Umfang
Es ist ein Fehler, Attribute auf einen vollen Stapel zu schieben. In diesem Fall wird das Fehlerflag gesetzt und es wird keine weitere Änderung des GL-Zustandes vorgenommen.
Zunächst ist der Attributstabel leer.
Nicht alle Werte für den GL-Status können auf dem Attributstabel gespeichert werden. So können beispielsweise den Status des Rendermodus sowie den Status von Auswahl und Feedback nicht gespeichert werden. Der Client-Status muss mit gl.PushClientAttrib() gespeichert werden.
Die Tiefe des Attributstapels hängt von der Implementierung ab, muss aber mindestens 16 betragen.
Weitere Informationen finden Sie in einem OpenGL-Referenzhandbuch.
#GL_STACK_OVERFLOW
wird erzeugt, wenn gl.PushAttrib()
aufgerufen wird,
während der Attributstapel voll ist.
#GL_INVALID_OPERATION
wird erzeugt, wenn gl.PushAttrib()
zwischen
gl.Begin() und gl.End() ausgeführt wird.
#GL_ATTRIB_STACK_DEPTH
gl.Get() mit dem Argument #GL_MAX_ATTRIB_STACK_DEPTH