Platform SDK: DirectX

D3DDEVICEDESC7

D3DDEVICEDESC7 構造体には、現在のデバイスの情報が含まれる。この構造体は、IDirect3DDevice7::GetCaps などのメソッドで現在のデバイスを問い合わせるために使用される。

この構造体は IDirect3DDevice3 より新しいすべてのデバイス インターフェイスで D3DDEVICEDESC 構造体に代わって使用される。

typedef struct _D3DDeviceDesc7 {
    DWORD        dwDevCaps;   
    D3DPRIMCAPS  dpcLineCaps; 
    D3DPRIMCAPS  dpcTriCaps;  
    DWORD        dwDeviceRenderBitDepth;  
    DWORD        dwDeviceZBufferBitDepth; 
    DWORD        dwMinTextureWidth, dwMinTextureHeight;
    DWORD        dwMaxTextureWidth, dwMaxTextureHeight;
    DWORD        dwMaxTextureRepeat;
    DWORD        dwMaxTextureAspectRatio;
    DWORD        dwMaxAnisotropy;
    D3DVALUE     dvGuardBandLeft;
    D3DVALUE     dvGuardBandTop;
    D3DVALUE     dvGuardBandRight;
    D3DVALUE     dvGuardBandBottom;
    D3DVALUE     dvExtentsAdjust;
    DWORD        dwStencilCaps;
    DWORD        dwFVFCaps;
    DWORD        dwTextureOpCaps;
    WORD         wMaxTextureBlendStages;
    WORD         wMaxSimultaneousTextures;
    DWORD        dwMaxActiveLights;
    D3DVALUE     dvMaxVertexW;
    GUID         deviceGUID;
    WORD         wMaxUserClipPlanes;
    WORD         wMaxVertexBlendMatrices;
    DWORD        dwVertexProcessingCaps;
    DWORD        dwReserved1;
    DWORD        dwReserved2;
    DWORD        dwReserved3;
    DWORD        dwReserved4;
} D3DDEVICEDESC7, *LPD3DDEVICEDESC7;

メンバ

dwDevCaps
デバイスの能力を識別するフラグ。
D3DDEVCAPS_CANBLTSYSTONONLOCAL
デバイスは、システムメモリ テクスチャから非ローカル ビデオメモリ テクスチャへのブリットをサポートする。

このフラグは DirectX 7.0 で導入された。

D3DDEVCAPS_CANRENDERAFTERFLIP
デバイスはページ フリップの後で、レンダリング コマンドを待つこともできる。このフラグはアプリケーション動作を変えるものではない。単にデバイスが比較的高速であることを示すものである。

このフラグは DirectX 5.0 で導入された。

D3DDEVCAPS_DRAWPRIMTLVERTEX
デバイスは、DrawPrimitive 対応ハードウェア アブストラクション レイヤ (HAL) をエクスポートする。

このフラグは DirectX 5.0 で導入された。

D3DDEVCAPS_EXECUTESYSTEMMEMORY
デバイスは、システム メモリから実行バッファを使用できる。
D3DDEVCAPS_EXECUTEVIDEOMEMORY
デバイスは、ビデオ メモリから実行バッファを使用できる。
D3DDEVCAPS_FLOATTLVERTEX
トランスフォーム後の頂点データを浮動小数点で取得。
D3DDEVCAPS_HWRASTERIZATION
デバイスには、シーンのラスタ化用のハードウェア アクセラレーションがある。
D3DDEVCAPS_HWTRANSFORMANDLIGHT
デバイスは、ハードウェアでトランスフォーム & ライティングをサポートする。

このフラグは DirectX 7.0 で導入された。

D3DDEVCAPS_SEPARATETEXTUREMEMORIES
デバイスは、ステージごとに別々のテクスチャ メモリ プールを使用する。テクスチャはその生成時に、DDSURFACEDESC2 構造体の dwTextureStage メンバを適切なステージ識別子に設定することにより、明示的にテクスチャ ステージに割り当てなければならない。
D3DDEVCAPS_SORTDECREASINGZ
深度の減少方向にソートされたデータが必要。
D3DDEVCAPS_SORTEXACT
精密にソートされたデータが必要。
D3DDEVCAPS_SORTINCREASINGZ
深度の増加方向にソートされたデータが必要。
D3DDEVCAPS_TEXTURENONLOCALVIDMEM
デバイスは、非ローカル ビデオ (AGP) メモリからテクスチャを取得できる。

このフラグは DirectX 5.0 で導入された。AGP メモリの詳細については、DirectDraw ドキュメントの「非ローカル ビデオ メモリ サーフェスの使用」を参照すること。

D3DDEVCAPS_TEXTURESYSTEMMEMORY
システム メモリからテクスチャを取得可能。
D3DDEVCAPS_TEXTUREVIDEOMEMORY
デバイス メモリからテクスチャを取得可能。
D3DDEVCAPS_TLVERTEXSYSTEMMEMORY
トランスフォーム済みライティング済みの頂点用に、システム メモリをバッファに使用可能。
D3DDEVCAPS_TLVERTEXVIDEOMEMORY
トランスフォーム済みライティング済みの頂点用に、ビデオ メモリをバッファに使用可能。
dpcLineCaps および dpcTriCaps
線の描画や三角形プリミティブのデバイスのサポート情報を定義する D3DPRIMCAPS 構造体。
dwDeviceRenderBitDepth
デバイスのレンダリング ビット深度。このメンバには、DirectDraw ビット深度定数 DDBD_8、DDBD_16、DDBD_24、または DDBD_32 のいずれかまたは複数を指定できる。
dwDeviceZBufferBitDepth
デバイスの深度バッファのビット深度。このメンバには、DirectDraw ビット深度定数 DDBD_8、DDBD_16、DDBD_24、または DDBD_32 のいずれかまたは複数を指定できる。
dwMinTextureWidthdwMinTextureHeight
このデバイスのテクスチャの最小の幅と高さ。
dwMaxTextureWidthdwMaxTextureHeight
このデバイスのテクスチャの最大の幅と高さ。
dwMaxTextureRepeat
正規化した後のテクスチャ インデックスの整数ビットの全範囲。D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE ビットが設定されている場合、デバイスは、テクスチャ アドレッシング モードが適用されるまでテクスチャ サイズによるスケーリングを行わない。これが設定されていない場合は、デバイスはテクスチャ サイズ (最大詳細レベル) によるテクスチャ インデックスのスケーリングを実行してから補間を行う。
dwMaxTextureAspectRatio
ハードウェアによってサポートされる、テクスチャの最大アスペクト比。通常は 2 の累乗。
dwMaxAnisotropy
D3DTSS_MAXANISOTROPY テクスチャステージ ステートの最大有効値。
dvGuardBandLeftdvGuardBandTopdvGuardBandRight および dvGuardBandBottom
ガードバンド クリッピング領域の画面空間座標。この矩形内かつビューポート矩形の外側にある座標は自動的にクリッピングされる。
dvExtentsAdjust
矩形の外辺をアンチエイリアス カーネルに適合させるためのピクセル数。
dwStencilCaps
サポートされているステンシル バッファ操作を指定するフラグ。ステンシル操作は 3 種類のステンシル バッファ操作レンダリング ステート (D3DRENDERSTATE_STENCILFAIL、D3DRENDERSTATE_STENCILPASS、D3DRENDERSTATE_STENCILFAILZFAIL) に対しては、すべて有効であると見なされる。
D3DSTENCILCAPS_DECR
D3DSTENCILOP_DECR 処理をサポートする。
D3DSTENCILCAPS_DECRSAT
D3DSTENCILOP_DECRSAT 処理をサポートする。
D3DSTENCILCAPS_INCR
D3DSTENCILOP_INCR 処理をサポートする。
D3DSTENCILCAPS_INCRSAT
D3DSTENCILOP_INCRSAT 処理をサポートする。
D3DSTENCILCAPS_INVERT
D3DSTENCILOP_INVERT 処理をサポートする。
D3DSTENCILCAPS_KEEP
D3DSTENCILOP_KEEP 処理をサポートする。
D3DSTENCILCAPS_REPLACE
D3DSTENCILOP_REPLACE 処理をサポートする。
D3DSTENCILCAPS_ZERO
D3DSTENCILOP_ZERO 処理をサポートする。
dwFVFCaps
柔軟な頂点フォーマット能力
D3DFVFCAPS_DONOTSTRIPELEMENTS
頂点要素は削除しない方がよい。つまり、頂点フォーマットが現在のレンダリング ステートで使用されない要素を含んでいても、頂点を再度生成する必要はない。この能力フラグが指定されていない場合、頂点フォーマットから不要な要素を削除すると、パフォーマンスが向上する。
D3DFVFCAPS_TEXCOORDCOUNTMASK
dwFVFCaps の下位 WORD をマスクする。このビットは、WORD データ型にキャストされ、デバイスが複数のテクスチャ ブレンディングに同時に使用できるテクスチャ座標セットの総数を示す(どの頂点に対しても最大 8 つのテクスチャ座標セットを使用できるが、デバイスでは指定された個数のテクスチャ座標セットのみブレンディングする)。
dwTextureOpCaps
このデバイスがサポートするテクスチャ操作を記述するフラグの組み合わせ。次のフラグが定義される。
D3DTEXOPCAPS_ADD
D3DTOP_ADD テクスチャブレンディング処理がサポートされる。
D3DTEXOPCAPS_ADDSIGNED
D3DTOP_ADDSIGNED テクスチャブレンディング処理がサポートされる。
D3DTEXOPCAPS_ADDSIGNED2X
D3DTOP_ADDSIGNED2X テクスチャブレンディング処理がサポートされる。
D3DTEXOPCAPS_ADDSMOOTH
D3DTOP_ADDSMOOTH テクスチャブレンディング処理がサポートされる。
D3DTEXOPCAPS_BLENDCURRENTALPHA
D3DTOP_BLENDCURRENTALPHA テクスチャブレンディング処理がサポートされる。
D3DTEXOPCAPS_BLENDDIFFUSEALPHA
D3DTOP_BLENDDIFFUSEALPHA テクスチャブレンディング処理がサポートされる。
D3DTEXOPCAPS_BLENDFACTORALPHA
D3DTOP_BLENDFACTORALPHA テクスチャブレンディング処理がサポートされる。
D3DTEXOPCAPS_BLENDTEXTUREALPHA
D3DTOP_BLENDTEXTUREALPHA テクスチャブレンディング処理がサポートされる。
D3DTEXOPCAPS_BLENDTEXTUREALPHAPM
D3DTOP_BLENDTEXTUREALPHAPM テクスチャブレンディング処理がサポートされる。
D3DTEXOPCAPS_BUMPENVMAP
D3DTOP_BUMPENVMAP テクスチャブレンディング処理がサポートされる。
D3DTEXOPCAPS_BUMPENVMAPLUMINANCE
D3DTOP_BUMPENVMAPLUMINANCE テクスチャブレンディング処理がサポートされる。
D3DTEXOPCAPS_DISABLE
D3DTOP_DISABLE テクスチャブレンディング処理がサポートされる。
D3DTEXOPCAPS_DOTPRODUCT3
D3DTOP_DOTPRODUCT3 テクスチャブレンディング処理がサポートされる。
D3DTEXOPCAPS_MODULATE
D3DTOP_MODULATE テクスチャブレンディング処理がサポートされる。
D3DTEXOPCAPS_MODULATE2X
D3DTOP_MODULATE2X テクスチャブレンディング処理がサポートされる。
D3DTEXOPCAPS_MODULATE4X
D3DTOP_MODULATE4X テクスチャブレンディング処理がサポートされる。
D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR
D3DTOP_MODULATEALPHA_ADDCOLOR テクスチャブレンディング処理がサポートされる。
D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA
D3DTOP_MODULATECOLOR_ADDALPHA テクスチャブレンディング処理がサポートされる。
D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR
D3DTOP_MODULATEINVALPHA_ADDCOLOR テクスチャブレンディング処理がサポートされる。
D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA
D3DTOP_MODULATEINVCOLOR_ADDALPHA テクスチャブレンディング処理がサポートされる。
D3DTEXOPCAPS_PREMODULATE
D3DTOP_PREMODULATE テクスチャブレンディング処理がサポートされる。
D3DTEXOPCAPS_SELECTARG1
D3DTOP_SELECTARG1 テクスチャブレンディング処理がサポートされる。
D3DTEXOPCAPS_SELECTARG2
D3DTOP_SELECTARG2 テクスチャブレンディング処理がサポートされる。
D3DTEXOPCAPS_SUBTRACT
D3DTOP_SUBTRACT テクスチャブレンディング処理がサポートされる。
wMaxTextureBlendStages
サポートされるテクスチャブレンディング ステージの最大数。
wMaxSimultaneousTextures
テクスチャ ブレンディング ステージに同時にバインドできるテクスチャの最大数。「注意」を参照すること。
dwMaxActiveLights
同時にアクティブにできるライトの最大数。
dvMaxVertexW
デバイスがサポートする最大 W ベース深度値。
deviceGUID
デバイスのグローバル ユニーク識別子 (GUI)。IID_IDirect3DHALDevice、IID_IDirect3DTnLHalDevice、または IID_IDirect3DRGBDevice のいずれか。
wMaxUserClipPlanes
サポートされるユーザー定義クリップ面の最大数。このメンバは 0 から D3DMAXUSERCLIPPLANES までの範囲になる。

ユーザー定義クリップ面の操作には、IDirect3DDevice7::GetClipPlane および IDirect3DDevice7::SetClipPlane メソッドを使用する。

wMaxVertexBlendMatrices
複数の行列による頂点ブレンディングを実行する際にデバイスが適用する配列の最大数。
dwVertexProcessingCaps
頂点の処理能力。
D3DVTXPCAPS_TEXGEN
デバイスはテクスチャ座標を生成できる。
D3DVTXPCAPS_MATERIALSOURCE7
デバイスは選択可能な頂点色ソースをサポートする。詳細については、「ライトの色の種類とソース」を参照すること。
D3DVTXPCAPS_VERTEXFOG
デバイスは頂点フォグをサポートする。
D3DVTXPCAPS_DIRECTIONALLIGHTS
デバイスはディレクショナル ライトをサポートする。
D3DVTXPCAPS_POSITIONALLIGHTS
デバイスは局部ライト (ポイント ライト、スポット ライトなど) をサポートする。
D3DVTXPCAPS_LOCALVIEWER
デバイスはローカル ビューアをサポートする。
dwReserved1 から dwReserved4
予約済み。

注意

wMaxTextureBlendStages および wMaxSimultaneousTextures メンバは類似しているように思えるが、互いに異なる情報を含んでいる。wMaxTextureBlendStages メンバは、現在のデバイスでサポートされるテクスチャブレンディング ステージの総数を示す。wMaxSimultaneousTextures メンバは、IDirect3DDevice7::SetTexture メソッドによってこれらのステージのうち何個のステージでテクスチャをバインドできるかを示す。

ドライバでは、この構造体に値を設定すると、能力の取得に使用するインターフェイス (IDirect3DDevice7 など) が実行バッファをサポートしていなくても、実行バッファ能力の値を設定できる。

動作環境

  Windows NT/2000 :Windows 2000 が必要。
  Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
  バージョン :DirectX 7.0 が必要。
  ヘッダー : d3dcaps.h で宣言。

参照

D3DPRIMCAPS