gl.NewList(list, mode)
gl.NewList()
erstellt. Alle
nachfolgenden Befehle werden in der Ausgabeliste in der angegebenen
Reihenfolge abgelegt, bis gl.EndList() aufgerufen wird.
gl.NewList()
hat zwei Argumente. Das erste Argument, list
, ist eine positive
ganze Zahl, die zum eindeutigen Namen für die Display-Liste wird. Namen können
mit gl.GenLists() erstellt und reserviert werden und auf
Eindeutigkeit mit gl.IsList() getestet werden. Das zweite
Argument, mode
, ist eine symbolische Konstante, die einen von zwei Werten
annehmen kann:
#GL_COMPILE
#GL_COMPILE_AND_EXECUTE
Bestimmte Befehle werden nicht in die Display-Liste kompiliert, sondern sofort ausgeführt, unabhängig davon, welcher Display-Listenmodus gerade aktiv ist. Diese Befehle sind gl.AreTexturesResident(), gl.ColorPointer(), gl.DeleteLists(), gl.DeleteTextures() und gl.DisableClientState(), gl.EdgeFlagPointer(), gl.EnableClientState() und gl.FeedbackBuffer(), gl.Finish(), gl.Flush(), gl.GenLists(), gl.GenTextures(), gl.IndexPointer(), gl.InterleavedArrays(), gl.IsEnabled() und auch gl.IsList(), gl.IsTexture(), gl.NormalPointer(), gl.PopClientAttrib() und schließlich auch gl.PixelStore(), gl.PushClientAttrib(), gl.ReadPixels(), gl.RenderMode(), gl.SelectBuffer(), gl.TexCoordPointer(), gl.VertexPointer() und alle gl.Get() Befehle.
Wenn gl.EndList() angetroffen wird, wird die Definition
der Display-Liste durch die Zuordnung der Liste zur eindeutigen Namensliste
(angegeben im Befehl gl.NewList()
) vervollständigt. Wenn bereits eine
Display-Liste mit Namensliste existiert, wird diese nur ersetzt, wenn
gl.EndList() aufgerufen wird.
gl.CallList() und gl.CallLists()
kann in Display-Listen eingetragen werden. Befehle in der Display-Liste oder
Listen, die durch gl.CallList() oder gl.CallLists()
ausgeführt werden sind nicht in der zu erstellenden Display-Liste enthalten,
auch wenn der Listenerstellungsmodus #GL_COMPILE_AND_EXECUTE
ist.
Eine Display-Liste ist nur eine Gruppe von Befehlen und Argumenten, so dass bei
der Ausführung der Liste Fehler generiert werden, die durch Befehle in
einer Display-Liste erzeugt werden. Wenn die Liste im Modus #GL_COMPILE
erstellt
wird, werden Fehler erst bei der Ausführung der Liste generiert.
Weitere Informationen finden Sie in einem OpenGL-Referenzhandbuch.
#GL_COMPILE
oder #GL_COMPILE_AND_EXECUTE
sein kann#GL_INVALID_VALUE
wird erzeugt, wenn list
0 ist.
#GL_INVALID_ENUM
wird generiert, wenn mode
kein akzeptierter Wert ist.
#GL_INVALID_OPERATION
wird erzeugt, wenn gl.EndList() ohne
vorherige gl.NewList()
aufgerufen wird, oder wenn gl.NewList()
aufgerufen wird,
während eine Display-Liste definiert wird.
#GL_INVALID_OPERATION
wird erzeugt, wenn gl.NewList()
oder
gl.EndList() zwischen gl.Begin()
und gl.End() ausgeführt wird.
#GL_OUT_OF_MEMORY
wird erzeugt, wenn nicht genügend Speicherplatz vorhanden
ist, um die Display-Liste zu erstellen. Wenn die GL-Version 1.1 oder höher ist,
wird keine Änderung am vorherigen Inhalt der Display-Liste vorgenommen, falls
vorhanden und es wird keine andere Änderung am GL-Status vorgenommen.
(Es ist, als ob kein Versuch unternommen worden wäre, die neue Display-Liste
zu erstellen).
gl.Get() mit dem Argument #GL_LIST_INDEX
gl.Get() mit dem Argument #GL_LIST_MODE