次の方法で共有


D3DRENDERSTATETYPE列挙 (d3d9types.h)

D3DRENDERSTATETYPE列挙型には、さまざまな属性またはレンダリング状態が一覧表示されます。 ドライバーによって排他的に使用されるD3DRENDERSTATETYPEの列挙子は、レンダリング情報またはテクスチャ属性を指定できます。 ディスプレイ ドライバーでは、次のレンダリング状態が使用されます。

構文

typedef enum _D3DRENDERSTATETYPE {
  D3DRS_ZENABLE,
  D3DRS_FILLMODE,
  D3DRS_SHADEMODE,
  D3DRS_ZWRITEENABLE,
  D3DRS_ALPHATESTENABLE,
  D3DRS_LASTPIXEL,
  D3DRS_SRCBLEND,
  D3DRS_DESTBLEND,
  D3DRS_CULLMODE,
  D3DRS_ZFUNC,
  D3DRS_ALPHAREF,
  D3DRS_ALPHAFUNC,
  D3DRS_DITHERENABLE,
  D3DRS_ALPHABLENDENABLE,
  D3DRS_FOGENABLE,
  D3DRS_SPECULARENABLE,
  D3DRS_FOGCOLOR,
  D3DRS_FOGTABLEMODE,
  D3DRS_FOGSTART,
  D3DRS_FOGEND,
  D3DRS_FOGDENSITY,
  D3DRS_RANGEFOGENABLE,
  D3DRS_STENCILENABLE,
  D3DRS_STENCILFAIL,
  D3DRS_STENCILZFAIL,
  D3DRS_STENCILPASS,
  D3DRS_STENCILFUNC,
  D3DRS_STENCILREF,
  D3DRS_STENCILMASK,
  D3DRS_STENCILWRITEMASK,
  D3DRS_TEXTUREFACTOR,
  D3DRS_WRAP0,
  D3DRS_WRAP1,
  D3DRS_WRAP2,
  D3DRS_WRAP3,
  D3DRS_WRAP4,
  D3DRS_WRAP5,
  D3DRS_WRAP6,
  D3DRS_WRAP7,
  D3DRS_CLIPPING,
  D3DRS_LIGHTING,
  D3DRS_AMBIENT,
  D3DRS_FOGVERTEXMODE,
  D3DRS_COLORVERTEX,
  D3DRS_LOCALVIEWER,
  D3DRS_NORMALIZENORMALS,
  D3DRS_DIFFUSEMATERIALSOURCE,
  D3DRS_SPECULARMATERIALSOURCE,
  D3DRS_AMBIENTMATERIALSOURCE,
  D3DRS_EMISSIVEMATERIALSOURCE,
  D3DRS_VERTEXBLEND,
  D3DRS_CLIPPLANEENABLE,
  D3DRS_POINTSIZE,
  D3DRS_POINTSIZE_MIN,
  D3DRS_POINTSPRITEENABLE,
  D3DRS_POINTSCALEENABLE,
  D3DRS_POINTSCALE_A,
  D3DRS_POINTSCALE_B,
  D3DRS_POINTSCALE_C,
  D3DRS_MULTISAMPLEANTIALIAS,
  D3DRS_MULTISAMPLEMASK,
  D3DRS_PATCHEDGESTYLE,
  D3DRS_DEBUGMONITORTOKEN,
  D3DRS_POINTSIZE_MAX,
  D3DRS_INDEXEDVERTEXBLENDENABLE,
  D3DRS_COLORWRITEENABLE,
  D3DRS_TWEENFACTOR,
  D3DRS_BLENDOP,
  D3DRS_POSITIONDEGREE,
  D3DRS_NORMALDEGREE,
  D3DRS_SCISSORTESTENABLE,
  D3DRS_SLOPESCALEDEPTHBIAS,
  D3DRS_ANTIALIASEDLINEENABLE,
  D3DRS_MINTESSELLATIONLEVEL,
  D3DRS_MAXTESSELLATIONLEVEL,
  D3DRS_ADAPTIVETESS_X,
  D3DRS_ADAPTIVETESS_Y,
  D3DRS_ADAPTIVETESS_Z,
  D3DRS_ADAPTIVETESS_W,
  D3DRS_ENABLEADAPTIVETESSELLATION,
  D3DRS_TWOSIDEDSTENCILMODE,
  D3DRS_CCW_STENCILFAIL,
  D3DRS_CCW_STENCILZFAIL,
  D3DRS_CCW_STENCILPASS,
  D3DRS_CCW_STENCILFUNC,
  D3DRS_COLORWRITEENABLE1,
  D3DRS_COLORWRITEENABLE2,
  D3DRS_COLORWRITEENABLE3,
  D3DRS_BLENDFACTOR,
  D3DRS_SRGBWRITEENABLE,
  D3DRS_DEPTHBIAS,
  D3DRS_WRAP8,
  D3DRS_WRAP9,
  D3DRS_WRAP10,
  D3DRS_WRAP11,
  D3DRS_WRAP12,
  D3DRS_WRAP13,
  D3DRS_WRAP14,
  D3DRS_WRAP15,
  D3DRS_SEPARATEALPHABLENDENABLE,
  D3DRS_SRCBLENDALPHA,
  D3DRS_DESTBLENDALPHA,
  D3DRS_BLENDOPALPHA,
  D3DRS_FORCE_DWORD
} D3DRENDERSTATETYPE;

定数

 
D3DRS_ZENABLE
深度バッファリング状態を表す D3DZBUFFERTYPE 列挙型。
D3DRS_FILLMODE
D3DFILLMODE 列挙型。
D3DRS_SHADEMODE
D3DSHADEMODE 列挙型。
D3DRS_ZWRITEENABLE
アプリケーションが深度バッファーに書き込める場合は TRUE。 既定値は TRUE です。 このメンバーを使用すると、アプリケーションは、システムが新しい深度値で深度バッファーを更新できないようにすることができます。 FALSE の場合、深度のバッファー処理は行われているが、深度値はバッファーに書き込まれていないと仮定して、深度の比較はレンダー状態D3DRS_ZFUNCに従って行われます。
D3DRS_ALPHATESTENABLE
ピクセルごとのアルファ テストを有効にする場合は TRUE。 テストに合格すると、ピクセルはフレーム バッファーによって処理されます。 それ以外の場合、すべてのフレーム バッファー処理はピクセルに対してスキップされます。
D3DRS_LASTPIXEL
既定値は TRUE で、線の最後のピクセルを描画できます。 最後のピクセルが描画されないようにするには、この値を FALSE に設定します。
D3DRS_SRCBLEND
D3DBLEND 列挙型。
D3DRS_DESTBLEND
D3DBLEND列挙型。
D3DRS_CULLMODE
背面の三角形をカリングする方法を指定する D3DCULL 列挙型 (まったく場合)。
D3DRS_ZFUNC
アプリケーションがカメラからの距離に基づいてピクセルを受け入れるか拒否できるようにする D3DCMPFUNC 列挙型。

ピクセルの深度値は、深度バッファー値と比較されます。 ピクセルの深度値が比較関数に合格すると、ピクセルが書き込まれます。

深度値は、レンダリング状態が TRUE の場合にのみ深度バッファーに書き込まれます。
D3DRS_ALPHAREF
アルファ テストが有効な場合にピクセルをテストする基準アルファ値を指定する値。 これは、DWORD レンダーステート値の下位 8 ビットに配置された 8 ビット値です。 値の範囲は、0x00000000から0x000000FFまでです。 既定値は 0 です。
D3DRS_ALPHAFUNC
アプリケーションがアルファ値に基づいてピクセルを受け入れるか拒否できるようにするD3DCMPFUNC列挙型。
D3DRS_DITHERENABLE
ディザリングを有効にする場合は TRUE。 既定値は FALSE です。
D3DRS_ALPHABLENDENABLE
アルファ ブレンドの透明度を有効にする場合は TRUE。 既定値は FALSE です。

アルファ ブレンドの種類は、D3DRS_SRCBLENDとD3DRS_DESTBLENDレンダリングの状態によって決まります。
D3DRS_FOGENABLE
霧のブレンドを有効にする場合は TRUE。 既定値は FALSE です。
D3DRS_SPECULARENABLE
TRUE を指定すると、反射ハイライトが有効になります。 既定値は FALSE です。
反射ハイライトは、照らされているオブジェクト内のすべての頂点がオブジェクトの原点にあるかのように計算されます。 これにより、オブジェクトが原点を中心にモデル化され、ライトからオブジェクトまでの距離が比較的大きい限り、予想される結果が得られます。 それ以外の場合、結果は未定義です。

このメンバーを TRUE に設定すると、テクスチャ カスケードの後、アルファ ブレンドの前に、反射色がベース カラーに追加されます。
D3DRS_FOGCOLOR
D3DCOLORVALUE 構造体。
D3DRS_FOGTABLEMODE
ピクセル 霧に使用する霧の数式を表す D3DFOGMODE 列挙型。
D3DRS_FOGSTART
線形霧モードでピクセルまたは頂点の霧効果が開始される深さ。 既定値は 0.0f です。 深度は、頂点霧のワールド空間と、ピクセル 霧のデバイス空間 [0.0, 1.0] またはワールド空間で指定されます。 ピクセル 霧の場合、システムが視線相対霧 (w-fog) を使用している場合に、システムが霧の計算に z を使用し、ワールド空間を使用する場合、これらの値はデバイス空間にあります。
D3DRS_FOGEND
線形霧モードのピクセルまたは頂点の霧効果が終了する深度。 既定値は 1.0f です。 深度は、頂点霧のワールド空間と、ピクセル 霧のデバイス空間 [0.0, 1.0] またはワールド空間で指定されます。 ピクセル 霧の場合、これらの値は、システムが霧の計算に z を使用する場合はデバイス空間に、システムが視線相対霧 (w-fog) を使用している場合はワールド空間に配置されます。
D3DRS_FOGDENSITY
指数霧モード (D3DFOG_EXPおよびD3DFOG_EXP2) で使用されるピクセルまたは頂点の霧の霧密度。 有効な密度値の範囲は 0.0 から 1.0 です。
D3DRS_RANGEFOGENABLE
範囲ベースの頂点霧を有効にする場合は TRUE。 既定値は FALSE です。この場合、システムは深度ベースの霧を使用します。 範囲ベースの霧では、ビューアーからのオブジェクトの距離は、シーン内のオブジェクトの深さ (つまり z 座標) ではなく、霧効果を計算するために使用されます。 範囲ベースの霧では、計算の深さではなく範囲を使用する点を除き、すべての霧メソッドは通常どおりに動作します。

範囲は霧の計算に使用する正しい要素ですが、深度は計算に時間がかかり、深度は一般に既に使用可能であるため、代わりに一般的に使用されます。 深度を使用して霧を計算すると、視聴者の目が動くにつれて周辺オブジェクトの霧が変化するという望ましくない効果があります。この場合、深度は変化し、範囲は一定のままです。

現在、ピクセル単位の範囲ベースの霧をサポートしているハードウェアがないため、範囲補正は頂点霧に対してのみ提供されます。
D3DRS_STENCILENABLE
ステンシルを有効にする場合は TRUE、ステンシルを無効にする場合は FALSE。 既定値は FALSE です。
D3DRS_STENCILFAIL
ステンシル テストが失敗した場合に実行するステンシル操作を指定する D3DSTENCILOP 列挙型。 既定値は D3DSTENCILOP_KEEP です。
D3DRS_STENCILZFAIL
ステンシル テストに合格し、深度テスト (z-test) が失敗した場合に実行するステンシル操作を指定するD3DSTENCILOP列挙型。
D3DRS_STENCILPASS
ステンシルテストと深度 (z) テストの両方に合格した場合に実行するステンシル操作を指定するD3DSTENCILOP列挙型。
D3DRS_STENCILFUNC
比較関数は、参照値をステンシル バッファー エントリと比較するために使用されます。 この比較は、ステンシル マスクに設定されている参照値とステンシル バッファー エントリのビットにのみ適用されます (D3DRS_STENCILMASKレンダリング状態によって設定されます)。 TRUE の場合、ステンシル テストに合格します。
D3DRS_STENCILREF
ステンシル テストの int 参照値。 既定値は 0 です。
D3DRS_STENCILMASK
ステンシル テストの有効ビットを決定するために、参照値と各ステンシル バッファー エントリに適用されるマスク。 既定のマスクは0xFFFFFFFFです。
D3DRS_STENCILWRITEMASK
ステンシル バッファーに書き込まれた値に適用されるマスクを書き込みます。 既定のマスクは0xFFFFFFFFです。
D3DRS_TEXTUREFACTOR
D3DTA_TFACTOR テクスチャ ブレンド引数またはD3DTOP_BLENDFACTORALPHAテクスチャ ブレンド操作を使用したマルチテクスチャ ブレンドに使用される色。
D3DRS_WRAP0
複数のテクスチャ座標セットのテクスチャ ラッピング動作。 このレンダリング状態の有効な値は、D3DWRAPCOORD_0 (またはD3DWRAP_U)、D3DWRAPCOORD_1 (またはD3DWRAP_V)、D3DWRAPCOORD_2 (またはD3DWRAP_W)、およびD3DWRAPCOORD_3フラグの任意の組み合わせにすることができます。 これにより、システムは、特定のテクスチャに対して、1 番目、2 番目、3 番目、および 4 番目の次元 (s、t、r、および q 方向とも呼ばれます) の方向に折り返されます。 このレンダリング状態の既定値は 0 です (すべての方向で折り返しが無効になっています)。
D3DRS_WRAP1
D3DRS_WRAP0を参照してください。
D3DRS_WRAP2
D3DRS_WRAP0を参照してください。
D3DRS_WRAP3
D3DRS_WRAP0を参照してください。
D3DRS_WRAP4
D3DRS_WRAP0を参照してください。
D3DRS_WRAP5
D3DRS_WRAP0を参照してください。
D3DRS_WRAP6
D3DRS_WRAP0を参照してください。
D3DRS_WRAP7
D3DRS_WRAP0を参照してください。
D3DRS_CLIPPING
Direct3D によるプリミティブクリッピングを有効にする場合は TRUE、無効にするには FALSE。 既定値は TRUE です。
D3DRS_LIGHTING
Direct3D 照明を有効にする場合は TRUE、無効にするには FALSE。 既定値は TRUE です。 頂点法線を含む頂点のみが適切に点灯します。法線を含まない頂点は、すべての照明計算で 0 のドット積を使用します。
D3DRS_AMBIENT
環境光の色。
D3DRS_FOGVERTEXMODE
頂点の霧に使用する霧の数式。
D3DRS_COLORVERTEX
頂点ごとの色を有効にする場合は TRUE、無効にするには FALSE。 既定値は TRUE です。 頂点ごとの色を有効にすると、個々の頂点に対して定義された色を照明計算に含めることができます。
D3DRS_LOCALVIEWER
カメラ相対反射ハイライトを有効にする場合は TRUE、直交反射ハイライトを使用する場合は FALSE。 既定値は TRUE です。 直交投影を使用するアプリケーションでは、FALSE を指定する必要があります。
D3DRS_NORMALIZENORMALS
頂点法線の自動正規化を有効にする場合は TRUE、無効にするには FALSE。 既定値は FALSE です。 この機能を有効にすると、システムは頂点の頂点法線をカメラ空間に変換した後に正規化します。これは、計算に時間がかかる場合があります。
D3DRS_DIFFUSEMATERIALSOURCE
照明計算用の拡散カラー ソース。
D3DRS_SPECULARMATERIALSOURCE
照明計算用の反射カラー ソース。
D3DRS_AMBIENTMATERIALSOURCE
照明計算用のアンビエント カラー ソース。
D3DRS_EMISSIVEMATERIALSOURCE
照明計算用の放射色ソース。
D3DRS_VERTEXBLEND
ジオメトリ ブレンドを実行するために使用するマトリックスの数 (存在する場合)。
D3DRS_CLIPPLANEENABLE
ユーザー定義のクリッピング プレーンを有効または無効にします。 有効な値は、各ビットの状態 (設定または設定されていない) が、対応するユーザー定義クリッピング プレーンのアクティブ化状態を切り替える任意の DWORD です。 最上位ビット (ビット 0) はインデックス 0 の最初のクリッピングプレーンを制御し、後続のビットは上位のインデックスでクリッピングプレーンのアクティブ化を制御します。 ビットが設定されている場合、シーンレンダリング中に適切なクリッピング平面が適用されます。 既定値は 0 です。
D3DRS_POINTSIZE
頂点ごとにポイント サイズが指定されていない場合にポイント サイズの計算に使用するサイズを指定する浮動小数点値。 頂点にポイント サイズが含まれている場合、この値は使用されません。 D3DRS_POINTSCALEENABLEが FALSE の場合、この値は画面空間単位になります。それ以外の場合、この値はワールド空間単位です。 既定値は、ドライバーが返す値です。 ドライバーが 0 または 1 を返す場合、既定値は 64 です。これにより、ソフトウェア ポイント サイズエミュレーションが可能になります。
D3DRS_POINTSIZE_MIN
ポイント プリミティブの最小サイズを指定する浮動小数点値。 ポイント プリミティブは、レンダリング中にこのサイズにクランプされます。 これを 1.0 より小さい値に設定すると、ポイントがピクセルの中心をカバーせず、アンチエイリアシングが無効になっている場合や、アンチエイリアシングが有効になっている場合に強度が低下してレンダリングされた場合に、ポイントがドロップします。 既定値は 1.0f です。 この値の範囲が 0.0f 以上です。
D3DRS_POINTSPRITEENABLE
TRUE の場合、すべてのテクスチャが各ポイントにマップされるように、ポイント プリミティブのテクスチャ座標が設定されます。 FALSE の場合、頂点テクスチャ座標がポイント全体に使用されます。 既定値は FALSE です。 D3DRS_POINTSCALEENABLEを FALSE に、D3DRS_POINTSIZEを既定値の 1.0 に設定することで、DirectX 7 スタイルの 1 ピクセル ポイントを実現できます。
D3DRS_POINTSCALEENABLE
ポイント プリミティブのサイズの計算を制御するブール値。 TRUE の場合、ポイント サイズはカメラ空間の値として解釈され、最終的な画面空間のポイント サイズを計算するために距離関数と錐台からビューポート y 軸へのスケーリングによってスケーリングされます。 FALSE の場合、ポイント サイズは画面空間として解釈され、直接使用されます。 既定値は FALSE です。
D3DRS_POINTSCALE_A
ポイント プリミティブの距離ベースのサイズ減衰を制御する浮動小数点値。 D3DRS_POINTSCALEENABLEが TRUE の場合にのみアクティブです。 既定値は 1.0f です。 この値の範囲が 0.0f 以上です。
D3DRS_POINTSCALE_B
ポイント プリミティブの距離ベースのサイズ減衰を制御する浮動小数点値。 D3DRS_POINTSCALEENABLEが TRUE の場合にのみアクティブです。 既定値は 0.0f です。 この値の範囲が 0.0f 以上です。
D3DRS_POINTSCALE_C
ポイント プリミティブの距離ベースのサイズ減衰を制御する浮動小数点値。 D3DRS_POINTSCALEENABLEが TRUE の場合にのみアクティブです。 既定値は 0.0f です。 この値の範囲が 0.0f 以上です。
D3DRS_MULTISAMPLEANTIALIAS
マルチサンプル レンダー ターゲット バッファーを使用する場合の個々のサンプルの計算方法を決定するブール値。 TRUE に設定すると、複数のサンプルが計算され、複数のサンプルごとに異なるサンプル位置でサンプリングによってフルシーンアンチエイリアシングが実行されます。 FALSE に設定すると、複数のサンプルはすべて同じサンプル値で書き込まれ、ピクセル中央でサンプリングされます。これにより、アンチエイリアシングされていないレンダリングをマルチサンプル バッファーに対して実行できます。 このレンダリング状態は、単一のサンプル バッファーにレンダリングする場合には影響しません。 既定値は TRUE です。
D3DRS_MULTISAMPLEMASK
このマスク内の各ビットは、少なくとも有効ビット (LSB) から始まり、マルチサンプル レンダー ターゲット内のいずれかのサンプルの変更を制御します。 したがって、8 サンプルのレンダー ターゲットの場合、下位バイトには 8 つのサンプルごとに 8 つの書き込み有効化が含まれます。 このレンダリング状態は、単一のサンプル バッファーにレンダリングする場合には影響しません。 既定値は 0xFFFFFFFF です。

このレンダリング状態により、マルチサンプル バッファーを累積バッファーとして使用でき、各パスでサンプルのサブセットが更新されるジオメトリのマルチパス レンダリングが実行されます。
マルチサンプルと k が有効なサンプルが n 個ある場合、レンダリングされるイメージの結果の強度は k/n である必要があります。 各ピクセルの各コンポーネント RGB は k/n で因子化されます。
D3DRS_PATCHEDGESTYLE
パッチ エッジで浮動スタイルテセレーションを使用するかどうかを設定します。
D3DRS_DEBUGMONITORTOKEN
モニターのデバッグにのみ設定します。
D3DRS_POINTSIZE_MAX
ポイント スプライトをクランプする最大サイズを指定する浮動小数点値。 値は、D3DCAPS9の MaxPointSize メンバー以下で、D3DRS_POINTSIZE_MIN以上である必要があります。 既定値は 64.0 です。
D3DRS_INDEXEDVERTEXBLENDENABLE
インデックス付き頂点ブレンドを有効または無効にするブール値。 既定値は FALSE です。 TRUE に設定すると、インデックス付き頂点ブレンドが有効になります。 FALSE に設定すると、インデックス付き頂点ブレンドは無効になります。 このレンダリング状態が有効な場合、ユーザーはマトリックス インデックスをパックされた DWORD としてすべての頂点と渡す必要があります。 レンダリング状態が無効で、D3DRS_VERTEXBLEND状態を通じて頂点ブレンドが有効になっている場合、すべての頂点にマトリックス インデックス 0、1、2、3 が含まれるのと同じです。
D3DRS_COLORWRITEENABLE
レンダー ターゲット カラー バッファーのチャネルごとの書き込みを有効にする UINT 値。 設定されたビットは、3D レンダリング中にカラー チャネルが更新されます。 クリア ビットを使用すると、カラー チャネルは影響を受けません。
D3DRS_TWEENFACTOR
ツイーン係数を制御する浮動小数点値。
D3DRS_BLENDOP
アルファ ブレンド レンダリング状態 (D3DRS_ALPHABLENDENABLE) が TRUE に設定されている場合に適用される算術演算の選択に使用される値。

D3DPMISCCAPS_BLENDOP デバイス機能がサポートされていない場合は、D3DBLENDOP_ADDが実行されます。
D3DRS_POSITIONDEGREE
N パッチ位置補間の次数。 値は、D3DDEGREE_CUBIC (既定値) またはD3DDEGREE_LINEARできます。
D3DRS_NORMALDEGREE
N パッチ法線補間の次数。 値は、D3DDEGREE_LINEAR (既定値) またはD3DDEGREE_QUADRATICできます。
D3DRS_SCISSORTESTENABLE
シザー テストを有効にする場合は TRUE、無効にする場合は FALSE。 既定値は FALSE です。
D3DRS_SLOPESCALEDEPTHBIAS
Z ファイティングを減らすために、共同平面プリミティブに適用できるバイアスの量を決定するために使用されます。 既定値は 0 です。
D3DRS_ANTIALIASEDLINEENABLE
行のアンチエイリアシングを有効にする場合は TRUE、行のアンチエイリアシングを無効にする場合は FALSE。 既定値は FALSE です。
D3DRS_MINTESSELLATIONLEVEL
最小テッセレーション レベル。 既定値は 1.0f です。
D3DRS_MAXTESSELLATIONLEVEL
最大テッセレーション レベル。 既定値は 1.0f です。
D3DRS_ADAPTIVETESS_X
x 方向に適応的にテッセレーションする量。 既定値は 0.0f です。
D3DRS_ADAPTIVETESS_Y
y 方向に適応的にテッセレーションする量。 既定値は 0.0f です。
D3DRS_ADAPTIVETESS_Z
z 方向に適応的にテッセレーションする量。 既定値は 1.0f です。
D3DRS_ADAPTIVETESS_W
適応的にテッセレーションする量 (w 方向)。 既定値は 0.0f です。
D3DRS_ENABLEADAPTIVETESSELLATION
アダプティブ テッセレーションを有効にする場合は TRUE、無効にする場合は FALSE。
D3DRS_TWOSIDEDSTENCILMODE
TRUE を指定すると両面ステンシルが有効になり、FALSE では無効になります。 既定値は FALSE です。 両面ステンシル モードを有効にするには、アプリケーションで D3DRS_CULLMODE を D3DCULL_NONE に設定する必要があります。 三角形の巻き上げ順序が時計回りの場合は、D3DRS_STENCIL* 演算が使用されます。 巻き取り順序が反時計回りの場合は、D3DRS_CCW_STENCIL* 操作が使用されます。
D3DRS_CCW_STENCILFAIL
CCW ステンシル テストが失敗した場合に実行するステンシル操作。
D3DRS_CCW_STENCILZFAIL
CCW ステンシル テストに合格し、z テストが失敗した場合に実行するステンシル操作。
D3DRS_CCW_STENCILPASS
CCW ステンシルと z テストの両方に合格した場合に実行するステンシル操作。
D3DRS_CCW_STENCILFUNC
比較関数。 ((ref & mask) ステンシル関数 (ステンシル & マスク)) が TRUE の場合、CCW ステンシル テストに合格します。
D3DRS_COLORWRITEENABLE1
デバイスの追加の ColorWriteEnable 値。
D3DRS_COLORWRITEENABLE2
デバイスの追加の ColorWriteEnable 値。
D3DRS_COLORWRITEENABLE3
デバイスの追加の ColorWriteEnable 値。
D3DRS_BLENDFACTOR
アルファ ブレンド中の一定のブレンド係数。
D3DRS_SRGBWRITEENABLE
レンダー ターゲットの書き込みを sRGB にガンマ補正できるようにします。 形式はD3DUSAGE_SRGBWRITEを公開する必要があります。 既定値は 0 です。
D3DRS_DEPTHBIAS
深度値の比較に使用される浮動小数点値。
D3DRS_WRAP8
D3DRS_WRAP0を参照してください。
D3DRS_WRAP9
D3DRS_WRAP0を参照してください。
D3DRS_WRAP10
D3DRS_WRAP0を参照してください。
D3DRS_WRAP11
D3DRS_WRAP0を参照してください。
D3DRS_WRAP12
D3DRS_WRAP0を参照してください。
D3DRS_WRAP13
D3DRS_WRAP0を参照してください。
D3DRS_WRAP14
D3DRS_WRAP0を参照してください。
D3DRS_WRAP15
D3DRS_WRAP0を参照してください。
D3DRS_SEPARATEALPHABLENDENABLE
TRUE を指定すると、アルファ チャネルの個別のブレンド モードが有効になります。 既定値は FALSE です。

FALSE に設定すると、アルファに適用されるレンダー ターゲットブレンド係数と操作は、色に対して定義されているものと同じであることが強制されます。 このモードは、キャップ D3DPMISCCAPS_SEPARATEALPHABLENDを設定しない実装では、実質的に FALSE にハードワイヤードされます。
D3DRS_SRCBLENDALPHA
D3DRS_SEPARATEALPHABLENDENABLEが TRUE でない限り、この値は無視されます。
D3DRS_DESTBLENDALPHA
D3DRS_SEPARATEALPHABLENDENABLEが TRUE でない限り、この値は無視されます。
D3DRS_BLENDOPALPHA
レンダリング状態 (D3DRS_SEPARATEALPHABLENDENABLE) が TRUE に設定されている場合に、個別のアルファ ブレンドに適用される算術演算を選択するために使用される値。
D3DRS_FORCE_DWORD
この列挙型を強制的に 32 ビットのサイズにコンパイルします。 この値がないと、一部のコンパイラでは、この列挙を 32 ビット以外のサイズにコンパイルできます。 この値は使用されません。

備考

これらのレンダリング状態は、内部でのみ使用されます。

D3DRENDERSTATE_EVICTMANAGEDTEXTURES

テクスチャがメモリから削除されるかどうかを判断します。 ドライバーは、既定値のない BOOL データ型を使用して、削除するかどうかを検出します。

このレンダリング状態は、ドライバーが (Direct3D ランタイムによって管理されるテクスチャではなく) 管理するテクスチャをビデオ メモリから削除するかどうかを決定します。 レンダリング状態の値が TRUE 場合、ドライバーはテクスチャを削除します。 それ以外の場合、ドライバーはこれらのテクスチャを削除しません。

D3DRENDERSTATE_SCENECAPTURE

フレーム内でキャプチャされたジオメトリ データの開始シーン情報または終了シーン情報を指定します。 ドライバーは、既定値が TRUE の BOOL データ型を使用して、シーン キャプチャ情報を検出します。

ドライバーは、最初にD3DRENDERSTATE_SCENECAPTUREに応答し、シーン情報を開始するために TRUE し、次に、フレーム内のジオメトリ データをキャプチャするエンド シーン情報の FALSE を使用します。 実装例については、Windows Driver Development Kit (DDK) に付属する permedia2 サンプル ドライバーを参照してください。 D3dDrawPrimitives2 呼び出しでD3DRENDERSTATE_SCENECAPTUREレンダリング状態を使用すると、従来の D3DHALCallbacks->D3dSceneCapture コールバック ルーチンが置き換えられます。

レガシ D3DHALCallbacksを実装するドライバーの更新には注意が必要です。>D3dSceneCapture コールバック ルーチンは、D3DRENDERSTATE_SCENECAPTUREレンダリング状態を使用します。 D3dSceneCapture コールバック ルーチンは、D3DHAL_SCENE_CAPTURE_START定数とD3DHAL_SCENE_CAPTURE_ENDを使用して、それぞれシーンの開始と終了を示します。 これらの定数の値はそれぞれ 0 と 1 です。 TRUE の代わりにこれらの定数を使用し、このレンダリング状態で FALSE する場合、意味は意図したとおりに正反対になります。

D3DRS_DELETERTPATCH

DirectX 8.0 以降のバージョンのみを します。

四角形または三角形のパッチをメモリから削除します。 ドライバーは、削除するパッチを検出するために、既定値のない DWORD データ型を使用します。

このレンダリング状態は、パッチが削除されることをドライバーに通知します。 このレンダリング状態の値は、影響を受けるパッチのハンドルです。 キャッシュされたすべての情報を解放し、ドライバーのパッチ ハンドル テーブルからハンドルを削除する必要があります。 このレンダリング状態はアプリケーションには表示されませんが、アプリケーションが DeletePatch 関数を呼び出すと内部的に生成されます。 このレンダリング状態は、DeletePatch によってパッチが明示的に削除された場合にのみ、ドライバーに送信されます。 デバイスが破棄されたときに、他のすべてのパッチをクリーンアップする必要があります。

D3DRS_MAXPIXELSHADERINST

DirectX 9.0 以降のバージョンのみを します。

ピクセル シェーダー アセンブラーが実行できる命令の最大数を決定します。

ドライバーは、既定値が D3DINFINITEINSTRUCTIONS (0xffffffff) の DWORD データ型を使用して、ピクセル シェーダー命令の最大数を報告します。 この最大数は、次の表に示すように、ディスプレイ デバイスがサポートするピクセル シェーダーのバージョンによって異なります。

バージョン 最大数
2_0 より前 0
2_0 96 から D3DINFINITEINSTRUCTIONS
3_0 以降 2¹⁶ (0x0000ffff) から D3DINFINITEINSTRUCTIONS

D3DINFINITEINSTRUCTIONSは、実質的に無制限の金額を表します。

このレンダリング状態の有効な値は、2 の累乗である数値です。ドライバーが他の整数を設定する場合、ランタイムは 2 つの数値の次に近い累乗を使用します。

ランタイムは、D3DCAPS9構造体 MaxVShaderInstructionsExecuted メンバーをこの最大数に設定します。

D3DRS_MAXVERTEXSHADERINST

DirectX 9.0 以降のバージョンのみを します。

頂点シェーダー アセンブラーが実行できる命令の最大数を決定します。

ドライバーは、既定値が D3DINFINITEINSTRUCTIONS (0xffffffff) の DWORD データ型を使用して、頂点シェーダー命令の最大数を報告します。 この最大数は、次の表に示すように、ディスプレイ デバイスがサポートする頂点シェーダーのバージョンによって異なります。

バージョン 最大数
2_0 より前 0
2_0 以降 2¹⁶ (0x0000ffff) から D3DINFINITEINSTRUCTIONS

D3DINFINITEINSTRUCTIONSは、実質的に無制限の金額を表します。

このレンダリング状態の有効な値は、2 の累乗である数値です。ドライバーが他の整数を設定する場合、ランタイムは 2 つの数値の次に近い累乗を使用します。

ランタイムは、D3DCAPS9構造体 MaxVShaderInstructionsExecuted メンバーをこの最大数に設定します。

ドライバーは、グラフィックスレンダリングを実行するときに、これらのレンダリング状態を使用します。 Windows Driver Kit (WDK) のドキュメントには、ドライバーに固有のレンダリング状態のみが含まれています。 DirectX アプリケーションからアクセスできるレンダリング状態は、DirectX SDK のドキュメントに含まれています。 これらのアプリケーション レベルのレンダリング状態には、アルファ ブレンドが有効かどうか、ディザリングが有効かどうか、Direct3D 照明が使用されているかどうか、使用するシェーディングの種類などの特性が含まれます。

特定のレンダリング状態を更新するために、Direct3D はレンダリング状態に関する情報を格納し、ドライバーの D3dDrawPrimitives2 コールバック ルーチンを呼び出します。 ドライバーに提供される情報により、次のことが可能になります。

  • 1 つ以上のレンダリング状態を更新する必要があることを確認します。

  • 更新するレンダリング状態と、新しいレンダリング状態の値を特定します。

特定のレンダリング状態を受け入れるために、ドライバーは、D3DPRIMCAPS構造体の関連するメンバーに機能フラグを以前に設定する必要があることに注意してください。

特定のレンダリング状態の更新を示すために、Direct3D は D3DHAL_DP2COMMAND 構造体をコマンド バッファーに挿入し、この構造体の bCommand メンバーをD3DDP2OP_RENDERSTATEに設定し (D3DHAL_DP2OPERATIONのD3DDP2OP_RENDERSTATEの説明を参照)、同じ構造体の wStateCount メンバーを更新するレンダリング状態の数に設定します。

D3DHAL_DP2COMMAND 構造体の直後に、Direct3D は更新する各レンダリング状態のコマンド バッファーに 1 つの D3DHAL_DP2RENDERSTATE 構造体を挿入します。 この構造体の RenderState メンバーは、変更するレンダリング状態を識別します。このレンダリング状態の新しい値は、dwState メンバー (DWORD 値の場合) または fState メンバー (D3DVALUE値の場合) で指定されます。

次の図は、D3DDP2OP_RENDERSTATE コマンドと 2 つのD3DHAL_DP2RENDERSTATE構造体を含むコマンド バッファーの一部を示しています。 3 つの構造体の 1 つ目は、2 つのレンダリング状態が更新されることを示しています。 2 番目の構造体は、D3DRENDERSTATE_FILLMODEのレンダリング状態を D3DFILL_SOLID に変更することを示します。 3 番目の構造体は、D3DRENDERSTATE_SHADEMODEのレンダリング状態をD3DSHADE_GOURAUDに更新する必要があることを示します。

D3DDP2OP_RENDERSTATE コマンドと 2 つのD3DHAL_DP2RENDERSTATE構造体を含むコマンド バッファーを示す図

その他の注意事項の

有効なすべてのレンダリング状態の種類の完全な一覧については、DirectX SDK ドキュメントのD3DTEXTURESTAGESTATETYPE、D3DTEXTUREOP、およびD3DTEXTUREFILTER列挙型を参照してください。

DirectX 5.0 以降のD3DRENDERSTATETYPE列挙型にいくつかの変更が加えられた。 D3DRENDERSTATE_BLENDENABLEは完全に削除されましたが、d3dtypes.h ヘッダー ファイルでD3DRENDERSTATE_ALPHABLENDENABLEとして定義されています。 詳細については、D3DRENDERSTATE_COLORKEYENABLEを参照してください。 間隔 [128, 255] の 128 個の整数値は、テクスチャ座標ラップ フラグ用に予約されています。 これらは、D3DWRAP_UマクロとD3DWRAP_Vマクロを使用して構築されます。 フラグ ワードを使用すると、2D よりも高い次元のテクスチャ座標との前方互換性が維持されます。

マルチテクスチャ マクロ操作とD3DRENDERSTATE_TEXTUREFACTORは、すべてのテクスチャ ステージ ブレンド コントロール (COLOR{OP,ARG1,ARG2} & ALPHA{OP,ARG1,ARG2}) をオーバーライドします。

必要条件

要件 価値
ヘッダー d3d9types.h (D3dhal.h を含む)