glCallLists 函数

glCallLists 函数执行显示列表的列表。

语法

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

参数

n

要执行的显示列表数。

type

列表中的值类型。 接受以下符号常量。

含义
GL_BYTE
lists 参数被视为带符号字节的数组,每个字节都在 -128 到 127 之间。
GL_UNSIGNED_BYTE
lists 参数被视为无符号字节数组,每个字节都在 0 到 255 之间。
GL_SHORT
lists 参数被视为带符号 2 字节整数的数组,每个整数在 -32768 到 32767 之间。
GL_UNSIGNED_SHORT
lists 参数被视为无符号 2 字节整数数组,每个整数都在 0 到 65535 之间。
GL_INT
lists 参数被视为带符号的 4 字节整数数组。
GL_UNSIGNED_INT
lists 参数被视为无符号 4 字节整数数组。
GL_FLOAT
lists 参数被视为 4 字节浮点值的数组。
GL_2_BYTES
lists 参数被视为无符号字节数组。 每对字节指定一个显示列表名称。 对的值计算为第一个字节的无符号值加上第二个字节的无符号值的 256 倍。
GL_3_BYTES
lists 参数被视为无符号字节数组。 每个三元字节指定单个显示列表名称。 三元组的值计算为第一个字节的无符号值的 65536 倍,加上第二个字节的无符号值的 256 倍,加上第三个字节的无符号值。
GL_4_BYTES
lists 参数被视为无符号字节数组。 每个四倍字节指定单个显示列表名称。 四元组的值的计算方式为16777216第一个字节的无符号值乘以第二个字节的无符号值 65536 倍,加上第三个字节的无符号值的 256 倍,加上第四个字节的无符号值。

列表

显示列表中名称偏移量数组的地址。 指针类型为 void,因为偏移量可以是字节、短时、ints 或浮点数,具体取决于 类型的值。

返回值

此函数不返回值。

注解

glCallLists 函数会导致执行作为列表传递的名称列表中的每个显示列表。 因此,每个显示列表中保存的函数将按顺序执行,就像在不使用显示列表的情况下调用它们一样。 未定义的显示列表的名称将被忽略。

glCallLists 函数提供了执行显示列表的有效方法。 n 参数指定具有各种名称格式的列表数, (glCallLists 执行的 type 参数) 指定。

显示列表名称的列表不是以 null 结尾的。 n 指定要从列表中获取多少个名称。

glListBase 函数提供额外的间接级别。 glListBase 函数指定一个无符号偏移量,在执行该显示列表之前,该偏移量将添加到列表中指定的每个显示列表名称中。

glCallLists 函数可以显示在显示列表中。 为了避免由于相互调用显示列表而导致无限递归的可能性,在显示列表执行期间,对显示列表的嵌套级别设置了限制。 此限制必须至少为 64,具体取决于实现。

通过调用 glCallLists,OpenGL 状态不会保存和还原。 因此,在执行显示列表期间对 OpenGL 状态所做的更改在完成执行后仍会保留。 使用 glPushAttribglPopAttribglPushMatrixglPopMatrixglCallLists 调用中保留 OpenGL 状态。

可以在对 glBegin 的调用和对 glEnd 的相应调用之间执行显示列表,前提是显示列表仅包含在此间隔内允许的函数。

以下函数检索与 glCallLists 函数相关的信息:

带参数GL_LIST_BASE的 glGet

带参数GL_MAX_LIST_NESTING的 glGet

glIsList

要求

要求
最低受支持的客户端
Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器
Windows 2000 Server [仅限桌面应用]
标头
Gl.h

Opengl32.lib
DLL
Opengl32.dll

另请参阅

glBegin

glCallList

glDeleteLists

glEnd

glGenLists

glGet

glIsList

glListBase

glNewList

glPopAttrib

glPopMatrix

glPushAttrib

glPushMatrix