Bezeichnung
gl.NewList -- erstellt oder ersetzt eine Display-Liste
Übersicht
gl.NewList(list, mode)
Beschreibung
Display-Listen sind Gruppen von GL-Befehlen, die zur späteren Ausführung gespeichert wurden. Display-Listen werden mit 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
Befehle werden nur kompiliert.

#GL_COMPILE_AND_EXECUTE
Befehle werden ausgeführt, wenn sie in die Display-Liste aufgenommen werden.

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.

Eingaben
list
gibt den Namen der Display-Liste als Ganzzahl an
mode
gibt den Kompiliermodus an, der für die Kompilierung #GL_COMPILE oder #GL_COMPILE_AND_EXECUTE sein kann
Fehler
#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).

Verbundene get-operationen
gl.IsList()

gl.Get() mit dem Argument #GL_LIST_INDEX

gl.Get() mit dem Argument #GL_LIST_MODE


Navigation zeigen