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 テスト) が失敗した場合に実行するステンシル操作を指定する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 です。 DirectX 7 スタイルの単一ピクセル ポイントを実現するには、D3DRS_POINTSCALEENABLEを FALSE に、D3DRS_POINTSIZEを 1.0 (既定値) に設定します。
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 に設定すると、複数のサンプルはすべて同じサンプル値で書き込まれ、ピクセルの中心でサンプリングされます。これにより、マルチサンプル バッファーに対してアンチエイリアス化されていないレンダリングが可能になります。 このレンダリング状態は、1 つのサンプル バッファーにレンダリングする場合には影響しません。 既定値は TRUE です。
D3DRS_MULTISAMPLEMASK
このマスク内の各ビットは、少なくとも重要なビット (LSB) から始まり、マルチサンプル レンダー ターゲット内のサンプルの 1 つの変更を制御します。 したがって、8 サンプルのレンダー ターゲットの場合、下位バイトには 8 つのサンプルごとに 8 つの書き込みイネーブルが含まれます。 このレンダリング状態は、1 つのサンプル バッファーにレンダリングする場合には影響しません。 既定値は 0xFFFFFFFF です。

このレンダリング状態により、マルチサンプル バッファーを累積バッファーとして使用でき、各パスでサンプルのサブセットが更新されるジオメトリのマルチパス レンダリングが実行されます。
n 個のマルチサンプルと k が有効なサンプルがある場合、レンダリングされるイメージの結果の強度は 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
tween 係数を制御する float 値。
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 データ型を使用して、シーン キャプチャ情報を検出します。

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

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

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 メンバーを更新するレンダリング状態の数に設定します。

direct3D は、D3DHAL_DP2COMMAND構造体の直後に、更新する各レンダリング状態のコマンド バッファーに 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}) をすべてオーバーライドします。

要件

要件
Header d3d9types.h (D3dhal.h を含む)