glCallLists-Funktion

Die GlCallLists-Funktion führt eine Liste von Anzeigelisten aus.

Syntax

void WINAPI glCallLists(
         GLsizei n,
         GLenum  type,
   const GLvoid  *lists
);

Parameter

n

Die Anzahl der auszuführenden Anzeigelisten.

type

Der Typ der Werte in Listen. Die folgenden symbolischen Konstanten werden akzeptiert.

Wert Bedeutung
GL_BYTE
Der lists-Parameter wird als Array von signierten Bytes behandelt, die jeweils im Bereich -128 bis 127 liegen.
GL_UNSIGNED_BYTE
Der lists-Parameter wird als Array von nicht signierten Bytes behandelt, die jeweils im Bereich von 0 bis 255 liegen.
GL_SHORT
Der Lists-Parameter wird als Array von ganzzahligen Vorzeichen mit 2 Byte behandelt, die jeweils im Bereich -32768 bis 32767 liegen.
GL_UNSIGNED_SHORT
Der lists-Parameter wird als Array von ganzen 2-Byte-Zahlen ohne Vorzeichen behandelt, die jeweils im Bereich von 0 bis 65535 liegen.
GL_INT
Der lists-Parameter wird als Array von ganzzahligen Vorzeichen mit 4 Byte behandelt.
GL_UNSIGNED_INT
Der lists-Parameter wird als Array von ganzen 4-Byte-Zahlen ohne Vorzeichen behandelt.
GL_FLOAT
Der lists-Parameter wird als Array von Gleitkommawerten mit 4 Byte behandelt.
GL_2_BYTES
Der lists-Parameter wird als Array von Bytes ohne Vorzeichen behandelt. Jedes Bytepaar gibt einen einzelnen Anzeigelistennamen an. Der Wert des Paares wird als 256-mal der unsignierte Wert des ersten Byte plus der wert ohne Vorzeichen des zweiten Byte berechnet.
GL_3_BYTES
Der lists-Parameter wird als Array von Bytes ohne Vorzeichen behandelt. Jedes Byte-Triplet gibt einen einzelnen Anzeigelistennamen an. Der Wert des Triplets wird als 65536-mal der wert ohne Vorzeichen des ersten Byte berechnet, plus das 256-fache des unsignierten Werts des zweiten Byte plus der unsignierte Wert des dritten Byte.
GL_4_BYTES
Der lists-Parameter wird als Array von Bytes ohne Vorzeichen behandelt. Jedes Quadruplet von Bytes gibt einen einzelnen Anzeigelistennamen an. Der Wert des Quadruplets wird als 16777216 Mal der unsignierte Wert des ersten Byte berechnet, plus 65536 mal der unsignierte Wert des zweiten Byte plus das 256-fache des unsignierten Werts des dritten Byte plus der unsignierte Wert des vierten Byte.

Listen

Die Adresse eines Arrays von Namensoffsets in der Anzeigeliste. Der Zeigertyp ist void, da die Offsets abhängig vom Wert des Typs Bytes, Shorts, Ints oder Floats sein können.

Rückgabewert

Diese Funktion gibt keinen Wert zurück.

Bemerkungen

Die glCallLists-Funktion bewirkt, dass jede Anzeigeliste in der Liste der als Listen übergebenen Namen ausgeführt wird. Daher werden die in jeder Anzeigeliste gespeicherten Funktionen in der Reihenfolge ausgeführt, so als würden sie aufgerufen, ohne eine Anzeigeliste zu verwenden. Namen von Anzeigelisten, die nicht definiert wurden, werden ignoriert.

Die GlCallLists-Funktion bietet ein effizientes Mittel zum Ausführen von Anzeigelisten. Der n-Parameter gibt die Anzahl von Listen mit verschiedenen Namensformaten an (durch den Typparameter angegeben), glCallLists wird ausgeführt.

Die Liste der Anzeigelistennamen ist nicht NULL-beendet. Stattdessen gibt n an, wie viele Namen aus Listen entnommen werden sollen.

Die glListBase-Funktion stellt eine zusätzliche Indirektierungsebene zur Verfügung. Die glListBase-Funktion gibt einen unsignierten Offset an, der jedem Anzeigelistennamen hinzugefügt wird, der in Listen angegeben ist, bevor diese Anzeigeliste ausgeführt wird.

Die glCallLists-Funktion kann in einer Anzeigeliste angezeigt werden. Um die Möglichkeit einer unendlichen Rekursion zu vermeiden, die sich aus aufrufenden Anzeigelisten ergibt, wird die Schachtelungsebene der Anzeigelisten während der Ausführung der Anzeigeliste begrenzt. Dieser Grenzwert muss mindestens 64 sein und hängt von der Implementierung ab.

Der OpenGL-Zustand wird nicht gespeichert und über einen Aufruf von glCallLists wiederhergestellt. Daher bleiben Änderungen, die während der Ausführung der Anzeigelisten am OpenGL-Zustand vorgenommen wurden, nach Abschluss der Ausführung erhalten. Verwenden Sie glPushAttrib, glPopAttrib, glPushMatrix und glPopMatrix , um den OpenGL-Zustand für glCallLists-Aufrufe beizubehalten.

Sie können Anzeigelisten zwischen einem Aufruf von glBegin und dem entsprechenden Aufruf von glEnd ausführen, solange die Anzeigeliste nur Funktionen enthält, die in diesem Intervall zulässig sind.

Die folgenden Funktionen rufen Informationen im Zusammenhang mit der GlCallLists-Funktion ab:

glGet mit Argument GL_LIST_BASE

glGet mit Argument GL_MAX_LIST_NESTING

glIsList

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows 2000 Server [nur Desktop-Apps]
Header
Gl.h
Bibliothek
Opengl32.lib
DLL
Opengl32.dll

Weitere Informationen

glBegin

glCallList

glDeleteLists

glEnd

glGenLists

glGet

glIsList

glListBase

glNewList

glPopAttrib

glPopMatrix

glPushAttrib

glPushMatrix