Microsoft DirectX 8.0 (C++)

D3DSTATEBLOCKTYPE

デバイス ステートの論理グループを定義する。

typedef enum _D3DSTATEBLOCKTYPE {
    D3DSBT_ALL           = 1,
    D3DSBT_PIXELSTATE    = 2,
    D3DSBT_VERTEXSTATE   = 3,

    D3DSBT_FORCE_DWORD   = 0xffffffff
} D3DSTATEBLOCKTYPE;

定数

D3DSBT_ALL
次のすべてのデバイス ステートを取り込む。
現在のすべてのレンダリング ステート 現在のすべてのクリップ面
現在のすべてのテクスチャ ステージ ステート 現在のマテリアル
現在のすべてのテクスチャ 現在のすべてのライトおよび有効なライト パラメータ
現在のパレット 現在のピクセル シェーダ
現在のすべてのストリーム 現在のピクセル シェーダ定数
現在のビューポート 現在の頂点シェーダ
現在のすべてのトランスフォーム 現在の頂点シェーダ定数

D3DSBT_PIXELSTATE
現在のピクセル シェーダ、ピクセル シェーダ定数、および次のピクセル関連デバイス ステートをすべて取り込む。

レンダリング ステート
D3DRS_ALPHABLENDENABLE D3DRS_ALPHAFUNC
D3DRS_ALPHAREF D3DRS_ALPHATESTENABLE
D3DRS_BLENDOP D3DRS_COLORWRITEENABLE
D3DRS_DESTBLEND D3DRS_DITHERENABLE
D3DRS_EDGEANTIALIAS D3DRS_FILLMODE
D3DRS_FOGDENSITY D3DRS_FOGEND
D3DRS_FOGSTART D3DRS_LASTPIXEL
D3DRS_LINEPATTERN D3DRS_SHADEMODE
D3DRS_SRCBLEND D3DRS_STENCILENABLE
D3DRS_STENCILFAIL D3DRS_STENCILFUNC
D3DRS_STENCILMASK D3DRS_STENCILPASS
D3DRS_STENCILREF D3DRS_STENCILWRITEMASK
D3DRS_STENCILZFAIL D3DRS_TEXTUREFACTOR
D3DRS_WRAP0 〜 D3DRS_WRAP7 D3DRS_ZBIAS
D3DRS_ZENABLE D3DRS_ZFUNC
D3DRS_ZWRITEENABLE  

テクスチャ ステージ ステート
D3DTSS_ADDRESSU D3DTSS_ADDRESSV
D3DTSS_ADDRESSW D3DTSS_ALPHAARG0
D3DTSS_ALPHAARG1 D3DTSS_ALPHAARG2
D3DTSS_ALPHAOP D3DTSS_BORDERCOLOR
D3DTSS_BUMPENVLOFFSET D3DTSS_BUMPENVLSCALE
D3DTSS_BUMPENVMAT00 D3DTSS_BUMPENVMAT01
D3DTSS_BUMPENVMAT10 D3DTSS_BUMPENVMAT11
D3DTSS_COLORARG0 D3DTSS_COLORARG1
D3DTSS_COLORARG2 D3DTSS_COLOROP
D3DTSS_MAGFILTER D3DTSS_MAXANISOTROPY
D3DTSS_MAXMIPLEVEL D3DTSS_MINFILTER
D3DTSS_MIPFILTER D3DTSS_MIPMAPLODBIAS
D3DTSS_RESULTARG D3DTSS_TEXCOORDINDEX
D3DTSS_TEXTURETRANSFORMFLAGS  

D3DSBT_VERTEXSTATE
現在のすべてのライト、現在の頂点シェーダと頂点シェーダ定数、および D3DTSS_TEXCOORDINDEX と D3DTSS_TEXTURETRANSFORMFLAG で指定されるテクスチャ ステージ ステートを取り込む。また、このフラグは、次の頂点関連デバイス ステートをすべて取り込む。

レンダリング ステート
D3DRS_AMBIENT D3DRS_AMBIENTMATERIALSOURCE
D3DRS_CLIPPING D3DRS_CLIPPLANEENABLE
D3DRS_COLORVERTEX D3DRS_DIFFUSEMATERIALSOURCE
D3DRS_EMISSIVEMATERIALSOURCE D3DRS_FOGDENSITY
D3DRS_FOGEND D3DRS_FOGSTART
D3DRS_FOGTABLEMODE D3DRS_FOGVERTEXMODE
D3DRS_INDEXEDVERTEXBLENDENABLE D3DRS_LIGHTING
D3DRS_LOCALVIEWER D3DRS_MULTISAMPLEANTIALIAS
D3DRS_MULTISAMPLEMASK D3DRS_NORMALIZENORMALS
D3DRS_PATCHEDGESTYLE D3DRS_PATCHSEGMENTS
D3DRS_POINTSCALE_A D3DRS_POINTSCALE_B
D3DRS_POINTSCALE_C D3DRS_POINTSCALEENABLE
D3DRS_POINTSIZE D3DRS_POINTSIZE_MAX
D3DRS_POINTSIZE_MIN D3DRS_POINTSPRITEENABLE
D3DRS_RANGEFOGENABLE D3DRS_SOFTWAREVERTEXPROCESSING
D3DRS_SPECULARMATERIALSOURCE D3DRS_TWEENFACTOR
D3DRS_VERTEXBLEND  

D3DSBT_FORCE_DWORD
この列挙型を強制的に 32 ビット サイズにコンパイルする。この値は使用されていない。

注意

D3DSBT_PIXELSTATE および D3DSBT_VERTEXSTATE 値は、異なる論理グループのデバイス ステートをそれぞれ識別するが、ステートによっては両方のグループに共通するものもある。D3DSBT_PIXELSTATE および D3DSBT_VERTEXSTATE の組み合わせは D3DSBT_ALL と同等ではない。D3DSBT_PIXELSTATE および D3DSBT_VERTEXSTATE 値を使うことで、IDirect3DDevice8::DrawPrimitive の呼び出しの間に頻繁に変更されるステートを取り込むことができ、ステート全体を取り込むことによるパフォーマンスへの悪影響はない。

動作環境

  ヘッダー : D3d8types.h で宣言。

参照

IDirect3DDevice8::CreateStateBlock