glPushClientAttrib 函数

glPushClientAttribglPopClientAttrib 函数在 client-attribute 堆栈上保存和还原客户端状态变量组。

语法

void WINAPI glPushClientAttrib(
   GLbitfield mask
);

参数

mask

指示要保存的属性的掩码。 下面是符号掩码常量及其关联的 OpenGL 客户端状态。

含义
GL_CLIENT_PIXEL_STORE_BIT
像素存储模式属性。
GL_CLIENT_VERTEX_ARRAY_BIT
顶点数组属性。
GL_CLIENT_ALL_ATTRIB_BITs
所有可堆叠的客户端状态属性。

返回值

此函数不返回值。

错误代码

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

名称 含义
GL_STACK_OVERFLOW
在客户端属性堆栈已满时调用了函数。

备注

glPushClientAttrib 函数使用其 mask 参数来确定哪些客户端状态变量组保存在 client-attribute 堆栈上。 可以使用按位 OR 运算符将接受的符号常量联接在一起,以设置位并构造掩码。

glPopClientAttrib 函数还原上次使用 glPushclientAttrib 保存的客户端状态变量的值。 以前未保存的客户端状态变量保持不变。 将属性推送到完整的客户端属性堆栈或从空堆栈中弹出属性将设置错误标志,并且不会对 OpenGL 状态进行任何其他更改。 默认情况下,客户端属性堆栈为空。

某些 OpenGL 客户端状态值不能保存在 client-attribute 堆栈上。 例如,不能在客户端属性堆栈上保存选择或反馈状态。 客户端属性堆栈的深度至少为 16。

glPushclientAttribglPopClientAttrib 函数不会编译为显示列表,而是立即执行。

glPushClientAttribglPopClientAttrib 函数只能推送和弹出像素存储模式和顶点数组客户端状态。 必须使用 glPushAttribglPopAttrib 推送和弹出服务器上保留的状态。

注意

glPushClientAttribglPopClientAttrib 函数仅在 OpenGL 版本 1.1 或更高版本中可用。

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

带参数GL_CLIENT_ATTRIB_STACK_DEPTH的 glGet

带参数GL_MAX_CLIENT_ATTRIB_STACK_DEPTH的 glGet

要求

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

Opengl32.lib
DLL
Opengl32.dll

另请参阅

glColorPointer

glDisableClientState

glEdgeFlagPointer

glEnableClientState

glGet

glGetError

glIndexPointer

glNormalPointer

glNewList

glPixelStore

glPushAttrib

glTexCoordPointer

glVertexPointer