glNewList: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K (=GL_COMPILE_AND_EXECUTE=)
K ()
Zeile 3: Zeile 3:
 
<br>
 
<br>
 
== Name ==
 
== Name ==
 
+
----
 
'''glNewList, glEndList''' - Erstellt oder ersetzt eine [[Displaylisten|Displayliste]]
 
'''glNewList, glEndList''' - Erstellt oder ersetzt eine [[Displaylisten|Displayliste]]
  
 
<br>
 
<br>
 
== Delphi-Spezifikation ==
 
== Delphi-Spezifikation ==
 
+
----
 
procedure '''glNewList'''(''list'' : TGLuint; ''mode'' : TGLenum);<br>
 
procedure '''glNewList'''(''list'' : TGLuint; ''mode'' : TGLenum);<br>
 
procedure '''glEndList''';
 
procedure '''glEndList''';
Zeile 14: Zeile 14:
 
<br>
 
<br>
 
== Parameter ==
 
== Parameter ==
 
+
----
 
<table border=1 rules=all>
 
<table border=1 rules=all>
 
<tr>
 
<tr>
Zeile 29: Zeile 29:
  
 
== Beschreibung ==  
 
== Beschreibung ==  
 
+
----
 
[[Displaylisten]] sind eine Gruppe von OpenGL-Befehlen die für eine nachfolgende Ausführung gespeichert werden und werden mit dem Befehl '''glNewList''' erstellt. Alle nachfolgenden Befehle werden in der Displayliste abgelegt bis '''glEndList''' aufgerufen wird.
 
[[Displaylisten]] sind eine Gruppe von OpenGL-Befehlen die für eine nachfolgende Ausführung gespeichert werden und werden mit dem Befehl '''glNewList''' erstellt. Alle nachfolgenden Befehle werden in der Displayliste abgelegt bis '''glEndList''' aufgerufen wird.
  
Zeile 48: Zeile 48:
  
 
== Hinweise ==
 
== Hinweise ==
 +
----
 
[[glCallList]] und [[glCallLists]] können innerhalb einer Displayliste aufgerufen werden, aber Befehle innerhalb dieser aufgerufenen Displaylisten werden NICHT in die aufrufende Displayliste hineinkompiliert, unabhängig vom Modus.
 
[[glCallList]] und [[glCallLists]] können innerhalb einer Displayliste aufgerufen werden, aber Befehle innerhalb dieser aufgerufenen Displaylisten werden NICHT in die aufrufende Displayliste hineinkompiliert, unabhängig vom Modus.
  
Zeile 54: Zeile 55:
 
<br>
 
<br>
 
== Fehlermeldungen ==
 
== Fehlermeldungen ==
 
+
----
 
'''GL_INVALID_VALUE''' wird generiert wenn ''list'' gleich 0 ist.
 
'''GL_INVALID_VALUE''' wird generiert wenn ''list'' gleich 0 ist.
  
Zeile 67: Zeile 68:
 
<br>
 
<br>
 
==  Zugehörige Wertrückgaben ==
 
==  Zugehörige Wertrückgaben ==
 
+
----
 
[[glIsList]]<br>
 
[[glIsList]]<br>
 
[[glGet]] mit dem Token '''GL_LIST_INDEX'''<br>
 
[[glGet]] mit dem Token '''GL_LIST_INDEX'''<br>
Zeile 74: Zeile 75:
 
<br>
 
<br>
 
== Siehe auch ==
 
== Siehe auch ==
 
+
----
 
[[glCallList]], [[glCallLists]], [[glDeleteLists]], glGenLists
 
[[glCallList]], [[glCallLists]], [[glDeleteLists]], glGenLists
  
 
Hintergrundwissen : [[Displaylisten]]
 
Hintergrundwissen : [[Displaylisten]]

Version vom 31. Juli 2004, 11:39 Uhr

glNewList, glEndList


Name


glNewList, glEndList - Erstellt oder ersetzt eine Displayliste


Delphi-Spezifikation


procedure glNewList(list : TGLuint; mode : TGLenum);
procedure glEndList;


Parameter


list Name der Displayliste.
mode Gibt den Kompilierungsmodus an; gültig ist hier GL_COMPILE und GL_COMPILE_AND_EXECUTE.


Beschreibung


Displaylisten sind eine Gruppe von OpenGL-Befehlen die für eine nachfolgende Ausführung gespeichert werden und werden mit dem Befehl glNewList erstellt. Alle nachfolgenden Befehle werden in der Displayliste abgelegt bis glEndList aufgerufen wird.

glNewList erhält dabei als erstes Argument einen positiven Integerwert der den eindeutigen Namen der Displayliste darstellt (Namen können mit glGenLists erstellt und mit glIsList geprüft werden. Das zweite Argument, mode, ist eine symbolische Konstante die die folgenden Wert annehmen kann :

GL_COMPILE

Die Befehlewerden nur kompiliert.

GL_COMPILE_AND_EXECUTE

Die Befehle werden gleichzeitig zur Kompilierung auch ausgeführt.

Bestimmte Befehle werden übrigens nicht in die Displayliste kompiliert, sondern dort direkt ausgeführt, unabhängig vom Modus der Displayliste, darunter glColorPointer, glDeleteLists, glDisableClientState, glEdgeFlagPointer, glEnableClientState, glFeedbackBuffer, glFinish, glFlush, glGenLists, glIndexPointer, glInterleavedArrays, glIsEnabled, glIsList, glNormalPointer, glPopClientAttrib, glPixelStore, glPushClientAttrib, glReadPixels, glRenderMode, glSelectBuffer, glTexCoordPointer, glVertexPointer, und alle glGet-Befehle. Die Befehle glTexImage1D, glTexImage2D und glTexImage3D werden auch direkt ausgeführt statt in die Liste hineinkompiliert zu werden, sobald ihr erstes Argument GL_PROXY_TEXTURE_1D, GL_PROXY_TEXTURE_2D oder GL_PROXY_TEXTURE_3D ist.

Sobald glEndList aufgerufen wird, wird die Erstellung der Displayliste beendet und diese mit dem eindeutigen Namen verbunden. Wenn eine Displayliste mit dem gleichen Namen bereits existiert, wird diese überschrieben.


Hinweise


glCallList und glCallLists können innerhalb einer Displayliste aufgerufen werden, aber Befehle innerhalb dieser aufgerufenen Displaylisten werden NICHT in die aufrufende Displayliste hineinkompiliert, unabhängig vom Modus.

Eine Displayliste ist eine Gruppe von Befehlen und Argumente, also werden Fehler innerhalb einer Displayliste ausgelöst sobald diese aufgerufen wird, nicht jedoch wenn diese nur kompiliert wird.


Fehlermeldungen


GL_INVALID_VALUE wird generiert wenn list gleich 0 ist.

GL_INVALID_ENUM wird generiert wenn mode kein gültiges Token ist.

GL_INVALID_OPERATION wird generiert wenn glEndList ohne vorhergehendes glNewList aufgerufen wird, oder glNewList aufgerufen wird wenn bereits eine Displayliste definiert wird. GL_INVALID_OPERATION wird generiert wenn glNewList oder glEndList zwischen einem glBegin und dem zugehörigen glEnd aufgerufen werden.

GL_OUT_OF_MEMORY wird generiert wenn nicht genügend Speicher zur Verfügung steht um die Displayliste zu generieren. Wenn die GL-Version 1.1 (oder höher ist), dann werden keine Änderungen an einer (evtl.) bereits vorher definierten Displayliste getätigt.


Zugehörige Wertrückgaben


glIsList
glGet mit dem Token GL_LIST_INDEX
glGet mit dem Token GL_LIST_MODE


Siehe auch


glCallList, glCallLists, glDeleteLists, glGenLists

Hintergrundwissen : Displaylisten