glNewList: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K (Siehe auch)
K (Kategorisierung)
 
(5 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
= glNewList, glEndList =
 
= glNewList, glEndList =
  
<br>
+
 
 +
 
 
== Name ==
 
== Name ==
 
'''glNewList, glEndList''' - Erstellt oder ersetzt eine [[Displaylisten|Displayliste]]
 
'''glNewList, glEndList''' - Erstellt oder ersetzt eine [[Displaylisten|Displayliste]]
  
<br>
+
 
 +
 
 
== Delphi-Spezifikation ==
 
== Delphi-Spezifikation ==
procedure '''glNewList'''(''list'' : TGLuint; ''mode'' : TGLenum);<br>
+
procedure '''glNewList'''(''list'' : TGLuint; ''mode'' : TGLenum);<br>
procedure '''glEndList''';
+
procedure '''glEndList''';
 +
 
 +
 
  
<br>
 
 
== Parameter ==
 
== Parameter ==
<table border=1 rules=all>
+
{|border=1 rules=all
<tr>
+
!''list''
<td>''list''</td>
+
|Name der Displayliste.
<td>Name der Displayliste.</td>
+
|-
</tr>
+
!''mode''
<tr>
+
|Gibt den Kompilierungsmodus an; gültig ist hier '''GL_COMPILE''' und '''GL_COMPILE_AND_EXECUTE'''.
<td>''mode''</td>
+
|}
<td>Gibt den Kompilierungsmodus an; gültig ist hier '''GL_COMPILE''' und '''GL_COMPILE_AND_EXECUTE'''.</td>
+
 
</tr>
+
 
</table>
 
  
<br>
 
  
 
== 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.
  
'''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 :
+
'''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 Werte annehmen kann:
  
 
=== GL_COMPILE ===
 
=== GL_COMPILE ===
Die Befehlewerden nur kompiliert.
+
Die Befehle werden nur kompiliert.
  
 
=== GL_COMPILE_AND_EXECUTE ===
 
=== GL_COMPILE_AND_EXECUTE ===
 
Die Befehle werden gleichzeitig zur Kompilierung auch ausgeführt.
 
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.
 
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.
Zeile 41: Zeile 44:
 
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.
 
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.
  
<br>
+
 
 +
 
  
 
== 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.
  
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.
+
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.
 +
 
 +
 
  
<br>
 
 
== Fehlermeldungen ==
 
== Fehlermeldungen ==
'''GL_INVALID_VALUE''' wird generiert wenn ''list'' gleich 0 ist.
+
'''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]]
  
'''GL_INVALID_ENUM''' wird generiert wenn ''mode'' kein gültiges Token ist.
+
[[glGet]] mit dem Token [[glGet#GL_LIST_INDEX|GL_LIST_INDEX]]
  
'''GL_INVALID_OPERATION''' wird generiert wenn '''glEndList''' ohne vorhergehendes '''glNewList''' aufgerufen wird, oder '''glNewList''' aufgerufen wird wenn bereits eine Displayliste definiert wird.
+
[[glGet]] mit dem Token [[glGet#GL_LIST_MODE|GL_LIST_MODE]]
'''
 
'''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.
 
  
<br>
 
==  Zugehörige Wertrückgaben ==
 
[[glIsList]]<br>
 
[[glGet]] mit dem Token '''GL_LIST_INDEX'''<br>
 
[[glGet]] mit dem Token '''GL_LIST_MODE'''<br>
 
  
<br>
 
 
== Siehe auch ==
 
== Siehe auch ==
[[glCallList]], [[glCallLists]], [[glDeleteLists]], glGenLists
+
[[glCallList]], [[glCallLists]], [[glDeleteLists]], [[glGenLists]]
  
 
Hintergrundwissen : [[Displaylisten]]
 
Hintergrundwissen : [[Displaylisten]]
  
 
[[Kategorie:GL|NewList]]
 
[[Kategorie:GL|NewList]]
 +
[[Kategorie:GL1.0|NewList]]

Aktuelle Version vom 22. Juni 2011, 03:38 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 Werte annehmen kann:

GL_COMPILE

Die Befehle werden 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