glPushAttrib 函数
推送属性堆栈。
语法
void WINAPI glPushAttrib(
GLbitfield mask
);
参数
-
mask
-
指示要保存的属性的掩码。 符号掩码常量及其关联的 OpenGL 状态如下所示, (缩进段落列表) 保存属性:
-
GL_ACCUM_BUFFER_BIT
-
累积缓冲区清除值
-
GL_COLOR_BUFFER_BIT
-
GL_ALPHA_TEST启用位
Alpha 测试函数和引用值
GL_BLEND启用位
混合源函数和目标函数
GL_DITHER启用位
GL_DRAW_BUFFER设置
GL_LOGIC_OP启用位
逻辑操作函数
颜色模式和索引模式清除值
颜色模式和索引模式写掩码
-
GL_CURRENT_BIT
-
当前 RGBA 颜色
当前颜色索引
当前法向量
当前纹理坐标
当前光栅位置GL_CURRENT_RASTER_POSITION_VALID标志
与当前光栅位置关联的 RGBA 颜色
与当前光栅位置关联的颜色索引
与当前光栅位置关联的纹理坐标
GL_EDGE_FLAG标志
-
GL_DEPTH_BUFFER_BIT
-
GL_DEPTH_TEST启用位
深度缓冲区测试函数
深度缓冲区清除值
GL_DEPTH_WRITEMASK启用位
-
GL_ENABLE_BIT
-
GL_ALPHA_TEST标志
GL_AUTO_NORMAL标志
GL_BLEND标志
为用户可定义的剪切平面启用位
GL_COLOR_MATERIAL
GL_CULL_FACE 标志
GL_DEPTH_TEST标志
GL_DITHER 标志
GL_FOG标志
GL_LIGHTi ,其中 0 <= i< GL_MAX_LIGHTS
GL_LIGHTING标志
GL_LINE_SMOOTH标志
GL_LINE_STIPPLE 标志
GL_COLOR_LOGIC_OP标志
GL_INDEX_LOGIC_OP标志
GL_MAP1_x其中 x 是映射类型
GL_MAP2_x,其中 x 是映射类型
GL_NORMALIZE 标志
GL_POINT_SMOOTH 标志
GL_POLYGON_OFFSET_LINE 标志
GL_POLYGON_OFFSET_FILL标志
GL_POLYGON_OFFSET_POINT 标志
GL_POLYGON_SMOOTH 标志
GL_POLYGON_STIPPLE标志
GL_SCISSOR_TEST标志
GL_STENCIL_TEST 标志
GL_TEXTURE_1D 标志
GL_TEXTURE_2D 标志
标志GL_TEXTURE_GEN_x其中 x 为 S、T、R 或 Q
-
GL_EVAL_BIT
-
GL_MAP1_x启用位,其中 x 是映射类型
GL_MAP2_x启用位,其中 x 是映射类型
一维网格终结点和划分
二维网格终结点和划分
GL_AUTO_NORMAL启用位
-
GL_FOG_BIT
-
GL_FOG启用标志
雾色
雾密度
线性雾启动
线性雾端
Fog 索引
GL_FOG_MODE值
-
GL_HINT_BIT
-
GL_PERSPECTIVE_CORRECTION_HINT设置
GL_POINT_SMOOTH_HINT设置
GL_LINE_SMOOTH_HINT设置
GL_POLYGON_SMOOTH_HINT设置
GL_FOG_HINT设置
-
GL_LIGHTING_BIT
-
GL_COLOR_MATERIAL启用位
GL_COLOR_MATERIAL_FACE值
跟踪当前颜色的颜色材料参数
环境场景颜色
GL_LIGHT_MODEL_LOCAL_VIEWER值
GL_LIGHT_MODEL_TWO_SIDE设置
GL_LIGHTING启用位
为每盏灯启用位
每种光线的环境、漫射和反射强度
每个光的方向、位置、指数和截止角度
每种光的常量、线性和二次衰减系数
每种材料的环境、漫射、反射和放射颜色
每种材料的环境、漫射和反射颜色索引
每个材料GL_SHADE_MODEL设置的反射指数
-
GL_LINE_BIT
-
GL_LINE_SMOOTH 标志
GL_LINE_STIPPLE启用位
行刺模式和重复计数器
线条宽度
-
GL_LIST_BIT
-
GL_LIST_BASE设置
-
GL_PIXEL_MODE_BIT
-
GL_RED_BIAS和GL_RED_SCALE设置
GL_GREEN_BIAS和GL_GREEN_SCALE值
GL_BLUE_BIAS和GL_BLUE_SCALE
GL_ALPHA_BIAS和GL_ALPHA_SCALE
GL_DEPTH_BIAS和GL_DEPTH_SCALE
GL_INDEX_OFFSET和GL_INDEX_SHIFT值
GL_MAP_COLOR和GL_MAP_STENCIL标志
GL_ZOOM_X和GL_ZOOM_Y因素
GL_READ_BUFFER设置
-
GL_POINT_BIT
-
GL_POINT_SMOOTH标志
点大小
-
GL_POLYGON_BIT
-
GL_CULL_FACE启用位
GL_CULL_FACE_MODE值
GL_FRONT_FACE指示器
GL_POLYGON_MODE设置
GL_POLYGON_SMOOTH标志
GL_POLYGON_STIPPLE启用位
GL_POLYGON_OFFSET_FILL标志
GL_POLYGON_OFFSET_LINE标志
GL_POLYGON_OFFSET_POINT 标志
GL_POLYGON_OFFSET_FACTOR
GL_POLYGON_OFFSET_UNITS
-
GL_POLYGON_STIPPLE_BIT
-
多边形 stipple 图像
-
GL_SCISSOR_BIT
-
GL_SCISSOR_TEST标志
剪刀盒
-
GL_STENCIL_BUFFER_BIT
-
GL_STENCIL_TEST启用位
模具函数和引用值
模具值掩码
模具失败、传递和深度缓冲区传递操作
模具缓冲区清除值
模具缓冲区写入掩码
-
GL_TEXTURE_BIT
-
为四个纹理坐标启用位
每个纹理图像的边框颜色
每个纹理图像的缩小函数
每个纹理图像的放大函数
每个纹理图像的纹理坐标和环绕模式
每个纹理环境的颜色和模式
启用位GL_TEXTURE_GEN_x; x 为 S、T、R 和 Q
S、T、R 和 Q 的GL_TEXTURE_GEN_MODE设置
适用于 S、T、R 和 Q 的 glTexGen 平面公式
-
GL_TRANSFORM_BIT
-
六个剪裁平面的系数
为用户可定义的剪裁平面启用位
GL_MATRIX_MODE值
GL_NORMALIZE 标志
-
GL_VIEWPORT_BIT
-
近距和远) (深度范围
视区原点和范围
-
返回值
此函数不返回值。
错误代码
glGetError 函数可以检索以下错误代码。
名称 | 含义 |
---|---|
|
函数是在属性堆栈已满时调用的。 |
|
函数是在 对 glBegin 的调用和对 glEnd 的相应调用之间调用的。 |
备注
glPushAttrib 函数采用一个参数,一个掩码,指示在属性堆栈上保存哪些状态变量组。 符号常量用于在掩码中设置位。 掩码参数通常是通过将逻辑 OR 运算应用于其中几个常量来构造的。 可以使用特殊掩码GL_ALL_ATTRIB_BITS保存所有可堆叠状态。
glPopAttrib 函数还原使用最后一个 glPushAttrib 命令保存的状态变量的值。 未保存的将保持不变。
将属性推送到完整堆栈或从空堆栈中弹出属性是错误的。 在任一情况下,都设置了错误标志,并且不会对 OpenGL 状态进行其他更改。
最初,属性堆栈为空。
并非 OpenGL 状态的所有值都可以保存在属性堆栈上。 例如,无法保存像素包和解压缩状态、呈现模式状态以及选择和反馈状态。
属性堆栈的深度取决于实现,但它必须至少为 16。
以下函数检索与 glPushAttrib 和 glPopAttrib 相关的信息:
带参数GL_ATTRIB_STACK_DEPTH的 glGet
带参数GL_MAX_ATTRIB_STACK_DEPTH的 glGet
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 |
Windows 2000 Server [仅限桌面应用] |
标头 |
|
库 |
|
DLL |
|