glPushName

Aus DGL Wiki
Version vom 8. August 2004, 15:03 Uhr von Phobeus (Diskussion | Beiträge)

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

glPushName, glPopName


Name


glPushName, glPopName - setzt oder nimmt einen Eintrag vom Namenstack.


Delphi-Spezifikation


procedure glPushName(name: GLuint)
procedure glPopName()



Parameter


  • name Der Eintrag der auf dem Namenstack hinzugefügt werden soll


Beschreibung


Unter einem Namen sollte man in diesem Fall nicht an einen String denken, sondern an eine Zahl in Form einer ID. Der Namenstack wird verwendet während Der Namenstack wird während des Selektions-Modus benutzt um es zu ermöglichen dass Render-Anweisungen eindeutig zu identifizieren sind. Der Namestack besteht aus vorzeichenlosen Integern und ist zu Beginn leer.

glPushName fügt einen neuen Namen dem Stack hinzu, während glPopName den obersten Eintrag vom Stack entfernt.

Die maximale Größe des Namenstack hängt von der Implementierung ab. Um heraus zu finden welche Größe auf dem System maximal Unterstützt wird, kann man glGet mit dem Parameter GL_MAX_NAME_STACK_DEPTH aufrufen. Es wird als Fehler angesehen wenn ein Name zu einem vollen Stack hinzugefügt wird oder es versucht wird einen Eintrag aus einem leeren Stack zu entfernen. Ebenfalls wird es als Fehler angesehen den Namestack während eines Aufrufes von glBegin und dem dazugehörigen glEnd zu manipulieren. In allen diesen Fällen wird das Error Flag gesetzt und keine weiteren Veränderungen durchgeführt.

Der Namenstack ist immer leer wenn der Rendermodus nicht GL_SELECT entspricht. Aufrufe von glPushName oder glPopName werden werden ebenfalls iignoriert, sollte der Rendermodus nicht auf GL_SELECT gesetzt sein.

Sinnvolle Get-Abfragen


  • glGet mit dem Argument GL_NAME_STACK_DEPTH
  • glGet mit dem Argument GL_MAX_NAME_STACK_DEPTH


Siehe auch


glInitNames, glLoadName, glRenderMode, glSelectBuffer