glNewList: Unterschied zwischen den Versionen
DGLBot (Diskussion | Beiträge) K (GlNewList wurde nach glNewList verschoben) |
K (Kategorisierung) |
||
(4 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
= glNewList, glEndList = | = glNewList, glEndList = | ||
− | + | ||
+ | |||
== Name == | == Name == | ||
'''glNewList, glEndList''' - Erstellt oder ersetzt eine [[Displaylisten|Displayliste]] | '''glNewList, glEndList''' - Erstellt oder ersetzt eine [[Displaylisten|Displayliste]] | ||
− | + | ||
+ | |||
== Delphi-Spezifikation == | == Delphi-Spezifikation == | ||
− | procedure '''glNewList'''(''list'' : TGLuint; ''mode'' : TGLenum);<br> | + | procedure '''glNewList'''(''list'' : TGLuint; ''mode'' : TGLenum);<br> |
− | procedure '''glEndList'''; | + | procedure '''glEndList'''; |
+ | |||
+ | |||
− | |||
== Parameter == | == Parameter == | ||
− | + | {|border=1 rules=all | |
− | + | !''list'' | |
− | + | |Name der Displayliste. | |
− | + | |- | |
− | + | !''mode'' | |
− | + | |Gibt den Kompilierungsmodus an; gültig ist hier '''GL_COMPILE''' und '''GL_COMPILE_AND_EXECUTE'''. | |
− | + | |} | |
− | + | ||
− | + | ||
− | |||
− | |||
== 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 | + | '''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 | + | 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. | ||
− | + | ||
+ | |||
== 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. |
+ | |||
+ | |||
− | |||
== 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]] | ||
− | + | [[glGet]] mit dem Token [[glGet#GL_LIST_INDEX|GL_LIST_INDEX]] | |
− | + | [[glGet]] mit dem Token [[glGet#GL_LIST_MODE|GL_LIST_MODE]] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== 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
Inhaltsverzeichnis
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
glGet mit dem Token GL_LIST_INDEX
glGet mit dem Token GL_LIST_MODE
Siehe auch
glCallList, glCallLists, glDeleteLists, glGenLists
Hintergrundwissen : Displaylisten