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 是一个正整数,它成为显示列表的唯一名称。 可以使用 glGenLists 创建和保留名称,并使用 glIsList 测试其唯一性。 第二个参数 mode 是可以假定上述两个值之一的符号常量。

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

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

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

glCallListglCallLists 函数可以输入到显示列表中。 显示列表中或 由 glCallListglCallLists 执行的列表中的命令不包括在所创建的显示列表中,即使列表创建模式GL_COMPILE_AND_EXECUTE也是如此。

以下函数检索 与 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