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 执行的 (具有各种名称格式的列表数。

显示列表名称的列表未以 null 结尾。 相反, n 指定要从 列表中获取多少个名称。

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

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

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

只要显示列表仅包含此间隔中允许的函数,就可以在对 glBegin 的调用和 对 glEnd 的相应调用之间执行显示列表。

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

带参数的 glGet GL_LIST_BASE

带参数的 glGet GL_MAX_LIST_NESTING

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