glPushClientAttrib

Aus DGL Wiki
Version vom 16. April 2007, 01:28 Uhr von Flash (Diskussion | Beiträge) (Siehe auch)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

glPushClientAttrib, glPopClientAttrib

Name

glPushClientAttrib, glPopClientAttrib - Speichert Attribute auf und lädt Attribute vom Klientattributstack.



Delphi-Spezifikation

procedure glPushClientAttrib(mask: TGLbitfield);



Parameter

mask Beschreibt eine Maske die steuert, welche Attribute gespeichert werden sollen. Werte für mask werden nachfolgend aufgeführt.


Delphi-Spezifikation

procedure glPopClientAttrib();



Beschreibung

glPushClientAttrib erwartet mit dem Parameter mask eine Maske die angibt, welche Gruppe von Klientzustandsvariablen (client-state variables) auf den Klientattributstack gespeichert werden sollen. Es werden symbolische Konstanten benutzt um Bits in der Maske zu setzen. mask wird typischerweise erstellt, indem man mehrere dieser Konstanten miteinander OR-Verknüpft. Die spezielle Maske GL_CLIENT_ALL_ATTRIB_BITS kann benutzt werden um alle speicherbaren Klientattribute auf den Stack zu schreiben.

Folgende symbolische Konstanten gibt es für mask:

GL_CLIENT_PIXEL_STORE_BIT

Pixel storage modes

GL_CLIENT_VERTEX_ARRAY_BIT

Vertex arrays (und welche davon aktiv sind (siehe glEnableClientState) )


glPopClientAttrib hohlt die zuletzt mit glPushClientAttrib gespeicherten Attribute wieder vom Stack. Das heißt, alle Attribute die nicht auf den Stack gespeichert wurden, bleiben unverändert.

Ein Fehler tritt auf, wenn versucht wird Attribute auf einen vollen Stack zu speichern, oder von einem leeren Stack zu lesen. In beiden Fällen wird das Error-Flag gesetzt. Es werden keine Veränderungen an GL-Zuständen gemacht.

Im Initialzustand ist der Stack leer.


Hinweise

glPushClientAttrib sind ab OpenGL Version 1.1 verfügbar.

Die Tiefe des Attributstacks ist implementationsabhängig, muss aber mindestens 16 sein.

Benutzen Sie glPushAttrib/glPopAttrib um Attribute zu sichern / laden welche auf dem Server gespeichert werden. Nur Pixelspeichermodi und Zustände von Vertexarrays werden mit glPushClientAttrib und glPopClientAttrib gespeichert und geladen.


Fehlermeldungen

GL_STACK_OVERFLOW wird generiert wenn glPushClientAttrib aufgerufen wird und der Stack bereits voll ist.
GL_STACK_UNDERFLOW wird generiert wenn glPopClientAttrib aufgerufen wird und der Stack bereits leer ist.



Zugehörige Wertrückgaben

glGet mit Token GL_ATTRIB_STACK_DEPTH
glGet mit Token GL_MAX_CLIENT_ATTRIB_STACK_DEPTH



Siehe auch

glColorPointer, glEdgeFlagPointer, glEnableClientState, glGet, glGetError, glIndexPointer, glNormalPointer, glNewList, glPixelStore, glPushAttrib, glTexCoordPointer, glVertexPointer