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函式可以擷取下列錯誤碼。

名稱 意義
GL_STACK_OVERFLOW
函式是在屬性堆疊已滿時呼叫。
GL_INVALID_OPERATION
函式是在 對 glBegin 的呼叫和 glEnd的對應呼叫之間呼叫。

備註

glPushAttrib函式會採用一個引數,這是一個遮罩,指出要儲存在屬性堆疊上的狀態變數群組。 符號常數是用來設定遮罩中的位。 遮罩參數通常是藉由將邏輯 OR 運算套用至其中數個常數來建構。 您可以使用特殊遮罩GL_ALL_ATTRIB_BITS來儲存所有可堆疊的狀態。

glPopAttrib函式會還原以最後一個 glPushAttrib命令儲存的狀態變數值。 未儲存的那些專案會保持不變。

將屬性推送至完整堆疊或從空堆疊中快顯屬性是錯誤的。 不論是哪一種情況,都已設定錯誤旗標,而且不會對 OpenGL 狀態進行任何其他變更。

一開始,屬性堆疊是空的。

並非所有 OpenGL 狀態的值都可以儲存在屬性堆疊上。 例如,您無法儲存圖元套件和解壓縮狀態、轉譯模式狀態,以及選取和意見反應狀態。

屬性堆疊的深度取決於實作,但至少必須是 16。

下列函式會擷 取與 glPushAttribglPopAttrib相關的資訊:

glGet with argument GL_ATTRIB_STACK_DEPTH

glGet with argument GL_MAX_ATTRIB_STACK_DEPTH

規格需求

需求
最低支援的用戶端
Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器
Windows 2000 Server [僅限桌面應用程式]
標頭
Gl.h
程式庫
Opengl32.lib
DLL
Opengl32.dll

另請參閱

glBegin

glEnd

glGet

glGetClipPlane

glGetError

glGetLight

glGetMap

glGetMaterial

glGetPixelMap

glGetPolygonStipple

glGetString

glGetTexEnv

glGetTexGen

glGetTexImage

glGetTexLevelParameter

glGetTexParameter

glIsEnabled