D3DHAL_D3DEXTENDEDCAPS構造体 (d3dhal.h)

D3DHAL_D3DEXTENDEDCAPSでは、ドライバーの追加の 3D 機能について説明します。

構文

typedef struct _D3DHAL_D3DEXTENDEDCAPS {
  DWORD    dwSize;
  DWORD    dwMinTextureWidth;
  DWORD    dwMaxTextureWidth;
  DWORD    dwMinTextureHeight;
  DWORD    dwMaxTextureHeight;
  DWORD    dwMinStippleWidth;
  DWORD    dwMaxStippleWidth;
  DWORD    dwMinStippleHeight;
  DWORD    dwMaxStippleHeight;
  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;
  WORD     wMaxUserClipPlanes;
  WORD     wMaxVertexBlendMatrices;
  DWORD    dwVertexProcessingCaps;
  DWORD    dwReserved1;
  DWORD    dwReserved2;
  DWORD    dwReserved3;
  DWORD    dwReserved4;
} D3DHAL_D3DEXTENDEDCAPS;

メンバー

dwSize

このD3DHAL_D3DEXTENDEDCAPS構造体のサイズをバイト単位で指定します。

dwMinTextureWidth

ドライバーまたはデバイスでサポートされる最小テクスチャ幅をピクセル単位で指定します。 このメンバーは通常、2 の累乗です。 これらのメンバーはアプリケーションへのヒントとして提供され、必要に応じてテクスチャ サイズを調整するのはアプリケーションの責任です。

dwMaxTextureWidth

ドライバーまたはデバイスでサポートされるテクスチャの最大幅をピクセル単位で指定します。 このメンバーは通常、2 の累乗です。 これらのメンバーはアプリケーションへのヒントとして提供され、必要に応じてテクスチャ サイズを調整するのはアプリケーションの責任です。

dwMinTextureHeight

ドライバーでサポートされる最小テクスチャの高さをピクセル単位で指定します。 このメンバーは通常、2 の累乗です。

dwMaxTextureHeight

ドライバーでサポートされるテクスチャの最大高さをピクセル単位で指定します。 このメンバーは通常、2 の累乗です。

dwMinStippleWidth

ドライバーでサポートされている最小のチップ幅をピクセル単位で指定します。

dwMaxStippleWidth

ドライバーでサポートされるヒントの最大幅をピクセル単位で指定します。

dwMinStippleHeight

ドライバーでサポートされている最小のチップの高さをピクセル単位で指定します。

dwMaxStippleHeight

ドライバーでサポートされる、チップの最大高さをピクセル単位で指定します。

dwMaxTextureRepeat

非正規化テクスチャ インデックスの整数 (サブフラクショナル) ビットの全範囲を指定します。 D3DDEVCAPS_TEXREPEATNOTSCALEDBYSIZE ビットが設定されている場合、テクスチャをラップできる回数がこのメンバーによって指定されます。 D3DDEVCAPS_TEXREPEATNOTSCALEDBYSIZE ビットが設定されていない場合、テクスチャをラップできる時間は、 dwMaxTextureRepeat * (テクスチャ サイズ) という式によって指定されます。

dwMaxTextureAspectRatio

ハードウェアでサポートされる最大テクスチャ縦横比を指定します。 このメンバーは通常、2 の累乗です。 この最大縦横比は、テクスチャの高さをピクセル単位でピクセル単位で割った値、または幅を高さで割った値のいずれか大きい方の値として提供されます。 たとえば、最大縦横比 4092 のみをサポートするディスプレイ デバイスでは、幅が 8192 ピクセル、高さが 1 ピクセル、幅が 8192 x 8192 のテクスチャは無効です。 ハードウェアが縦横比に制限されていない場合、 dwMaxTextureAspectRatiodwMaxTextureWidthdwMaxTextureHeight の方が大きくなります。

dwMaxAnisotropy

D3DRENDERSTATE_ANISOTROPYレンダリング状態の有効な最大値を指定します。 ドライバーのハードウェアが異方性フィルター処理をサポートしていない場合、ドライバーはこのメンバーを 1 に設定する必要があります。 このメンバーを 0 に設定すると、無効な値が表されます。

dvGuardBandLeft

dvGuardBandTop

dvGuardBandRight

dvGuardBandBottom

ガードバンド クリップ領域の画面空間座標をピクセル単位で指定します。 この四角形の左上隅には座標 (dvGuardBandLeftdvGuardBandTop) があります。 左下隅には座標 (dvGuardBandRightdvGuardBandBottom) があります。 この四角形内の座標が、ビューポートの四角形の外側に自動的にクリップされます。

dvExtentsAdjust

アンチエイリアシング カーネルに対応するために、エクステントの四角形を外側に調整するために必要なピクセル数を指定します。

dwStencilCaps

ドライバーまたはデバイスでサポートされるステンシル バッファー操作を指定します。 次の表に示すステンシル バッファー操作の詳細については、DirectX SDK ドキュメントのD3DSTENCILOPを参照してください。 ステンシル操作は、3 つのステンシル バッファー操作のレンダリング状態 (D3DRENDERSTATE_STENCILFAIL、D3DRENDERSTATE_STENCILPASS、D3DRENDERSTATE_STENCILZFAIL) すべてに対して有効であると見なされます。 このメンバーには、次のいずれかの値のビットごとの OR を指定できます。

ステンシル バッファー操作
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

ドライバーが処理できるテクスチャ座標の数を指定します。 この値は、0 ~ 8 の範囲の整数を指定できます。0 は、ドライバーがテクスチャリングをサポートしていないことを示します。1 は、ドライバーがテクスチャ座標のセットを 1 つだけ処理できることを示します。2 は、ドライバーが 2 組のテクスチャ座標を処理できることを示します。

ドライバーは、ドライバーが実際に使用するテクスチャ座標の数に関係なく、頂点データに存在するすべてのテクスチャ座標を解析できる必要があります。 ドライバーは、DirectX SDK ドキュメントで説明されているD3DTEXTURESTAGESTATETYPE列挙のD3DTSS_TEXCOORDINDEX値で提供されるインデックスを使用して、レンダリング時に使用するテクスチャ座標セットを決定する必要があります。

dwTextureOpCaps

デバイスでサポートされるテクスチャ操作を指定します。 次の表に示すテクスチャ操作の説明については、DirectX SDK ドキュメントのD3DTEXTUREOPを参照してください。 このメンバーには、次の値のビットごとの OR を指定できます。

テクスチャ操作がサポートされています
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_MODULATEALPHA_ADDCOLOR テクスチャ ブレンド操作は、このデバイスでサポートされています。
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

このデバイスのテクスチャ ブレンド ステージに同時にバインドできるテクスチャの最大数を指定します。 つまり、 wMaxSimultaneousTextures、lDirect3DDevice7::SetTexture メソッドを使用してテクスチャをバインドできるテクスチャ ステージの数を指定します。 この方法の詳細については、Microsoft Windows SDKドキュメントを参照してください。

dwMaxActiveLights

このデバイスでサポートされているアクティブ ライトの最大数を指定します。 これは、ハードウェアの変換と照明をサポートするドライバーでのみ指定する必要があります (そのため、デバイスキャップにD3DDEVCAPS_HWTRANSFORMANDLIGHTを指定します)。

dvMaxVertexW

このデバイスでサポートされる最大 W 範囲を指定します。 これは、W バッファリングをサポートするドライバーでのみ指定する必要があります (したがって、ラスター化キャップでD3DPRASTERCAPS_WBUFFERを指定します)。 W 深度値の単位は、実行中のアプリケーションによって異なります。 たとえば、アプリケーションでは深さをメートル単位で指定できます。

wMaxUserClipPlanes

サポートされているユーザー定義クリップ プレーンの最大数を指定します。

wMaxVertexBlendMatrices

頂点ブレンドでサポートされるワールド マトリックスの数を指定します。

dwVertexProcessingCaps

ドライバーでサポートされている頂点処理キャップを指定します。 このメンバーには、次の値のビットごとの OR を指定できます。

意味
D3DVTXPCAPS_DIRECTIONALLIGHTS デバイスは方向ライトを実行できます。
D3DVTXPCAPS_LOCALVIEWER デバイスはローカル ビューアーを実行できます。
D3DVTXPCAPS_MATERIALSOURCE7 デバイスでは、DirectX 7.0 カラーマテリアルソース操作を実行できます。
D3DVTXPCAPS_NO_TEXGEN_NONLOCALVIEWER デバイスでは、ローカル以外のビューアー モードでのテクスチャ生成はサポートされていません。
D3DVTXPCAPS_POSITIONALLIGHTS デバイスは、位置指定ライト (ポイントとスポットを含む) を実行できます。
D3DVTXPCAPS_TEXGEN デバイスは、texgen を実行できます。
D3DVTXPCAPS_TEXGEN_SPHEREMAP デバイスはD3DTSS_TCI_SPHEREMAPをサポートしています。
D3DVTXPCAPS_TWEENING デバイスは頂点のツイーニングを実行できます。

dwReserved1

システムで使用するために予約されています。

dwReserved2

システムで使用するために予約されています。

dwReserved3

システムで使用するために予約されています。

dwReserved4

システムで使用するために予約されています。

注釈

ドライバーは、この構造体を割り当ててゼロ初期化し、サポートするメンバーに適切な値を設定します。 ドライバーの DdGetDriverInfo 関数は、その関数がGUID_D3DExtendedCaps GUID で呼び出されると、この構造体へのポインターを返します。

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

要件

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

こちらもご覧ください

DdGetDriverInfo