glCallLists-Funktion

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

Syntax

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

Parameter

n

Die Anzahl der angezeigten Listen, die ausgeführt werden sollen.

type

Der Werttyp in Listen. Die folgenden symbolischen Konstanten werden akzeptiert.

Wert Bedeutung
GL_BYTE
Der Listenparameter wird als Array signierter Bytes behandelt, jeweils im Bereich -128 bis 127.
GL_UNSIGNED_BYTE
Der Listenparameter wird als Array von nicht signierten Bytes behandelt, jeweils im Bereich 0 bis 255.
GL_SHORT
Der Listenparameter wird als Array signierter 2-Byte-Ganzzahlen behandelt, jeweils im Bereich -32768 bis 32767.
GL_UNSIGNED_SHORT
Der Listenparameter wird als Array nicht signierter 2-Byte-Ganzzahlen behandelt, jeweils im Bereich 0 bis 65535.
GL_INT
Der Listenparameter wird als Array signierter 4-Byte-Ganzzahlen behandelt.
GL_UNSIGNED_INT
Der Listenparameter wird als Array nicht signierter 4-Byte-Ganzzahlen behandelt.
GL_FLOAT
Der Listenparameter wird als Array von 4-Byte-, Gleitkommawerten behandelt.
GL_2_BYTES
Der Listenparameter wird als Array nicht signierter Bytes behandelt. Jedes Bytepaar gibt einen einzelnen Anzeigelistennamen an. Der Wert des Paars wird als 256 mal der nicht signierte Wert des ersten Bytes und des nicht signierten Werts des zweiten Bytes berechnet.
GL_3_BYTES
Der Listenparameter wird als Array nicht signierter Bytes behandelt. Jedes Triplet von Bytes gibt einen einzelnen Anzeigelistennamen an. Der Wert des Triplet wird als 65536 mal der nicht signierte Wert des ersten Bytes berechnet, plus 256 mal den nicht signierten Wert des zweiten Bytes sowie den nicht signierten Wert des dritten Bytes.
GL_4_BYTES
Der Listenparameter wird als Array nicht signierter Bytes behandelt. Jedes Vierfache von Bytes gibt einen einzelnen Anzeigelistennamen an. Der Wert des Quadruplets wird als 16777216 mal der nicht signierte Wert des ersten Bytes berechnet, plus 65536 mal den nicht signierten Wert des zweiten Bytes, plus 256 mal den nicht signierten Wert des dritten Bytes sowie den nicht signierten Wert des vierten Byte.

Listen

Die Adresse eines Arrays von Namen offsets in der Anzeigeliste. Der Zeigertyp ist ungültig, da die Offsets Bytes, Shorts, Ints oder Floats je nach Wert des Typs sein können.

Rückgabewert

Diese Funktion gibt keinen Wert zurück.

Bemerkungen

Die glCallLists-Funktion verursacht jede Anzeigeliste in der Liste der Namen, die als Listen ausgeführt werden sollen. Daher werden die in jeder Anzeigeliste gespeicherten Funktionen so ausgeführt, wie sie ohne Verwendung einer Anzeigeliste aufgerufen wurden. Namen von Anzeigelisten, die nicht definiert wurden, werden ignoriert.

Die glCallLists-Funktion bietet eine effiziente Möglichkeit zum Ausführen von Anzeigelisten. Der Parameter n gibt die Anzahl der Listen mit verschiedenen Namenformaten (angegeben durch den Typparameter ) glCallLists an.

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 Indirektungsebene zur Verfügung. Die glListBase-Funktion gibt einen nicht signierten 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 Anzeigelisten ergeben, die eine andere aufrufen, wird ein Grenzwert auf der Schachtelungsebene der Anzeigelisten während der Anzeigelistenausführung platziert. Dieser Grenzwert muss mindestens 64 sein, und es hängt von der Implementierung ab.

Der OpenGL-Zustand wird nicht gespeichert und über einen Aufruf von glCallLists wiederhergestellt. Daher bleiben Änderungen an dem OpenGL-Zustand während der Ausführung der Anzeigelisten nach Abschluss der Ausführung erhalten. Verwenden Sie glPushAttrib, glPopAttrib, glPushMatrix und glPopMatrix, um den OpenGL-Zustand über 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

Requirements (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

Siehe auch

glBegin

glCallList

glDeleteLists

glEnd

glGenLists

glGet

glIsList

glListBase

glNewList

glPopAttrib

glPopMatrix

glPushAttrib

glPushMatrix