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
GL_STACK_OVERFLOW
Die Funktion wurde aufgerufen, während der Attributstapel voll war.
GL_INVALID_OPERATION
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
Gl.h
Bibliothek
Opengl32.lib
DLL
Opengl32.dll

Siehe auch

glBegin

glEnd

glGet

glGetClipPlane

glGetError

glGetLight

glGetMap

glGetMaterial

glGetPixelMap

glGetPolygonStipple

glGetString

glGetTexEnv

glGetTexGen

glGetTexImage

glGetTexLevelParameter

glGetTexParameter

glIsEnabled