glNewList 函数

glNewListglEndList 函数创建或替换显示列表。

语法

void WINAPI glNewList(
   GLuint list,
   GLenum mode
);

参数

list

显示列表名称。

mode

编译模式。 接受以下值。

含义
GL_COMPILE
命令只是编译的。
GL_COMPILE_AND_EXECUTE
命令在编译到显示列表中时执行。

返回值

此函数不返回值。

错误代码

glGetError 函数可以检索以下错误代码。

名称 含义
GL_INVALID_VALUE
list 为零。
GL_INVALID_ENUM
mode 不是接受的值。
GL_INVALID_OPERATION
函数在 对 glBegin 的调用和 glEnd 的相应调用之间调用。

注解

显示列表是已存储以供后续执行的 OpenGL 命令组。 显示列表是使用 glNewList 创建的。 在调用 glEndList 之前,所有后续命令都放置在显示列表中(按发出的顺序)。

glNewList 函数具有两个参数。 第一个参数 list 是一个正整数,它将成为显示列表的唯一名称。 可以使用 glGenList 创建和保留名称,并通过 glIsList 测试其唯一性。 第二个参数 模式是一个符号常量,可以假定上述两个值之一。

某些命令不会编译到显示列表中,但会立即执行,而不考虑显示列表模式。 这些命令是 glColorPointerglDeleteListsglDisableClientStateglEdgeFlagPointerglEnableClientStateglFeedbackBufferglFinishglFlushglGenListsglIndexPointerglInterleavedArraysglIsEnabledglIsListglNormalPointerglPopClientAttribglPixelStoreglPushClientAttrib, glPushClientAttribglReadPixelsglRenderModeglSelectBufferglTexCoordPointerglVertexPointer 和所有 glGet 例程。

同样,当第一个参数分别GL_PROXY_TEXTURE_2D或GL_PROXY_TEXTURE_1D时,将立即执行 glTexImage2DglTexImage1D ,并且不会编译到显示列表中。

遇到 glEndList 函数时,通过将列表与 glNewList 命令中指定的唯一名称列表关联 (来完成显示列表定义) 。 如果已存在名称 列表 的显示列表,则仅在调用 glEndList 时替换它。

glCallListglCallLists 函数可以输入到显示列表中。 即使列表创建模式GL_COMPILE_AND_EXECUTE, glCallListglCallList 执行的显示列表或列表中的命令也不会包含在正在创建的显示列表中。

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

带参数GL_MATRIX_MODE的 glGet

要求

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

Opengl32.lib
DLL
Opengl32.dll

另请参阅

glBegin

glCallList

glCallLists

glDeleteLists

glEnd

glEndList

glGenLists

glIsList