glPushName: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K (Der Kategorie GL zugeordnet)
K (Kategorisierung; Ergänzung der Fehlermeldungen)
 
(6 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
==glPushName, glPopName==
+
=glPushName, glPopName=
  
<br>
 
=== Name ===
 
----
 
'''glPushName, glPopName''' - setzt bzw. nimmt einen Eintrag vom Namenstack.
 
  
<br>
 
=== Delphi-Spezifikation ===
 
----
 
'''procedure''' glPushName(''name'': GLuint)
 
'''procedure''' glPopName()
 
  
<br>
+
== Name ==
===Parameter===
+
 
----
+
'''glPushName, glPopName''' - setzt bzw. nimmt einen Eintrag vom [[Stack|Namenstack]].
 +
 
 +
 
 +
 
 +
 
 +
== Delphi-Spezifikation ==
 +
 
 +
'''procedure''' glPushName(''name'': GLuint);
 +
'''procedure''' glPopName();
 +
 
 +
 
 +
 
 +
==Parameter==
 +
 
 
{| border="1" rules="all"
 
{| border="1" rules="all"
 
! ''name''
 
! ''name''
| Der Eintrag der auf dem Namenstack hinzugefügt werden soll.
+
| Der Eintrag, der auf dem Namenstack hinzugefügt werden soll.
 
|}
 
|}
  
<br>
+
 
=== Beschreibung ===
+
 
----
+
== 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
+
Unter einem Namen sollte man in diesem Fall nicht an einen String denken, sondern an eine Zahl in Form einer ID. Der Namenstack wird während des [[glRenderMode |Selektions-Modus]] benutzt, um eine eindeutige Identifizierung von Render-Anweisungen zu ermöglichen. Der Namestack besteht aus vorzeichenlosen Integern und ist zu Beginn leer.
Der Namenstack wird während des [[glRenderMode |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.
 
'''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.
+
Die maximale Größe des Namenstack hängt von der Implementierung ab. Um herauszufinden, 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 [[glRenderMode|Rendermodus]] nicht '''GL_SELECT''' entspricht. Aufrufe von '''glPushName''' oder '''glPopName''' werden werden ebenfalls ignoriert, sollte der Rendermodus nicht auf '''GL_SELECT''' gesetzt sein.
 +
 
 +
 
 +
 
 +
== Fehlermeldungen ==
 +
'''GL_STACK_OVERFLOW''' wird generiert, falls '''glPushName''' aufgerufen wird, während der Namenstack voll ist.
 +
 
 +
'''GL_STACK_UNDERFLOW''' wird generiert, wenn '''glPopName''' aufgerufen wird, während der Namenstack leer ist.
 +
 
 +
'''GL_INVALID_OPERATION''' wird generiert, falls '''glPushName''' oder '''glPopName''' zwischen [[glBegin]] und dem zugehörigen Aufruf von [[glEnd]] aufgerufen werden.
 +
 
 +
 
 +
 
 +
==Zugehörige Wertrückgaben==
 +
*[[glGet]] mit dem Argument [[glGet#GL_NAME_STACK_DEPTH|GL_NAME_STACK_DEPTH]]
 +
*[[glGet]] mit dem Argument [[glGet#GL_MAX_NAME_STACK_DEPTH|GL_MAX_NAME_STACK_DEPTH]]
 +
 
 +
 
  
Der Namenstack ist immer leer wenn der [[glRenderMode|Rendermodus]] nicht '''GL_SELECT''' entspricht. Aufrufe von '''glPushName''' oder '''glPopName''' werden werden ebenfalls ignoriert, sollte der Rendermodus nicht auf '''GL_SELECT''' gesetzt sein.
+
==Siehe auch==
<br>
 
===Sinnvolle Get-Abfragen===
 
----
 
*glGet mit dem Argument GL_NAME_STACK_DEPTH
 
*glGet mit dem Argument GL_MAX_NAME_STACK_DEPTH
 
<br>
 
===Siehe auch===
 
----
 
 
[[glInitNames]], [[glLoadName]], [[glRenderMode]], [[glSelectBuffer]]
 
[[glInitNames]], [[glLoadName]], [[glRenderMode]], [[glSelectBuffer]]
  
 
[[Kategorie:GL|PushName]]
 
[[Kategorie:GL|PushName]]
 +
[[Kategorie:GL1.0|PushName]]

Aktuelle Version vom 29. Juli 2011, 09:40 Uhr

glPushName, glPopName

Name

glPushName, glPopName - setzt bzw. 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 während des Selektions-Modus benutzt, um eine eindeutige Identifizierung von Render-Anweisungen zu ermöglichen. 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 herauszufinden, 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 ignoriert, sollte der Rendermodus nicht auf GL_SELECT gesetzt sein.


Fehlermeldungen

GL_STACK_OVERFLOW wird generiert, falls glPushName aufgerufen wird, während der Namenstack voll ist.

GL_STACK_UNDERFLOW wird generiert, wenn glPopName aufgerufen wird, während der Namenstack leer ist.

GL_INVALID_OPERATION wird generiert, falls glPushName oder glPopName zwischen glBegin und dem zugehörigen Aufruf von glEnd aufgerufen werden.


Zugehörige Wertrückgaben


Siehe auch

glInitNames, glLoadName, glRenderMode, glSelectBuffer