glPushAttrib 関数

属性スタックをプッシュします。

構文

void WINAPI glPushAttrib(
   GLbitfield mask
);

パラメーター

mask

保存する属性を示すマスク。 シンボリック マスク定数とそれに関連付けられている OpenGL 状態は次のとおりです (属性が保存されるインデントされた段落の一覧)。

GL_ACCUM_BUFFER_BIT

累積バッファークリア値

GL_COLOR_BUFFER_BIT

GL_ALPHA_TESTビットを有効にする

アルファ テスト関数と参照値

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 フラグ

x がマップの種類であるGL_MAP1_x

x がマップの種類であるGL_MAP2_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 フラグ

x が S、T、R、または Q であるGL_TEXTURE_GEN_xフラグ

GL_EVAL_BIT

GL_MAP1_xビットを有効にします。ここで、x はマップの種類です

GL_MAP2_xビットを有効にします。ここで、x はマップの種類です

1-D グリッドのエンドポイントと分割

2-D グリッドのエンドポイントと分割

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ビットを有効にする

各ライトのビットを有効にする

各ライトのアンビエント、拡散、および反射の強度

各ライトの方向、位置、指数、およびカットオフ角度

各光の定数、線形、および 2 次減衰係数

各マテリアルのアンビエント、拡散、反射、および放射色

各マテリアルのアンビエント、拡散、および反射の色インデックス

各マテリアルの反射指数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

多角形のヒントの画像

GL_SCISSOR_BIT

GL_SCISSOR_TEST フラグ

ハサミボックス

GL_STENCIL_BUFFER_BIT

GL_STENCIL_TESTビットを有効にする

ステンシル関数と参照値

ステンシル値マスク

ステンシルの失敗、パス、および深度バッファーのパス アクション

ステンシル バッファーのクリア値

ステンシル バッファーの書き込みマスク

GL_TEXTURE_BIT

4 つのテクスチャ座標のビットを有効にする

各テクスチャ イメージの境界線の色

各テクスチャ イメージの縮小関数

各テクスチャ イメージの拡大機能

各テクスチャ イメージのテクスチャ座標とラップ モード

各テクスチャ環境の色とモード

ビット 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

6 つのクリッピング平面の係数

ユーザー定義可能なクリッピング プレーンのビットを有効にする

GL_MATRIX_MODE値

GL_NORMALIZE フラグ

GL_VIEWPORT_BIT

深度範囲 (近距離と遠距離)

ビューポートの原点と範囲

戻り値

この関数は値を返しません。

エラー コード

glGetError 関数では、次のエラー コードを取得できます。

名前 意味
GL_STACK_OVERFLOW
属性スタックがいっぱいの間に関数が呼び出されました。
GL_INVALID_OPERATION
この関数は、 glBegin の呼び出しと glEnd の対応する呼び出しの間で呼び出されました。

解説

glPushAttrib 関数は 1 つの引数を受け取ります。これは、属性スタックに保存する状態変数のグループを示すマスクです。 シンボリック定数は、マスク内のビットを設定するために使用されます。 mask パラメーターは、通常、これらの定数のいくつかに論理 OR 演算を適用することによって構築されます。 特殊なマスク GL_ALL_ATTRIB_BITSを使用して、スタック可能なすべての状態を保存できます。

glPopAttrib 関数は、最後の glPushAttrib コマンドで保存された状態変数の値を復元します。 保存されていないものは変更されません。

属性を完全なスタックにプッシュするか、空のスタックから属性をポップするのはエラーです。 どちらの場合も、エラー フラグが設定され、OpenGL 状態に対するその他の変更は行われません。

最初は、属性スタックが空です。

OpenGL 状態のすべての値を属性スタックに保存できるわけではありません。 たとえば、ピクセル パックとアンパック状態の保存、レンダリング モードの状態、選択とフィードバックの状態を保存することはできません。

属性スタックの深さは実装によって異なりますが、少なくとも 16 である必要があります。

次の関数は 、glPushAttrib と glPopAttrib に関連する情報 取得します。

glGet と引数 GL_ATTRIB_STACK_DEPTH

glGet と引数 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