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 是對應類型
1D 格線端點和除法
2D 格線端點和除法
GL_AUTO_NORMAL啟用位
-
GL_FOG_BIT
-
GL_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啟用位
線條 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相關的資訊:
glGet with argument GL_ATTRIB_STACK_DEPTH
glGet with argument GL_MAX_ATTRIB_STACK_DEPTH
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows 2000 Server [僅限桌面應用程式] |
標頭 |
|
程式庫 |
|
DLL |
|