D3DCAPS9 構造体 (d3d9caps.h)

Direct3D オブジェクトを介して公開されるハードウェアの機能を表します。

構文

typedef struct _D3DCAPS9 {
  D3DDEVTYPE        DeviceType;
  UINT              AdapterOrdinal;
  DWORD             Caps;
  DWORD             Caps2;
  DWORD             Caps3;
  DWORD             PresentationIntervals;
  DWORD             CursorCaps;
  DWORD             DevCaps;
  DWORD             PrimitiveMiscCaps;
  DWORD             RasterCaps;
  DWORD             ZCmpCaps;
  DWORD             SrcBlendCaps;
  DWORD             DestBlendCaps;
  DWORD             AlphaCmpCaps;
  DWORD             ShadeCaps;
  DWORD             TextureCaps;
  DWORD             TextureFilterCaps;
  DWORD             CubeTextureFilterCaps;
  DWORD             VolumeTextureFilterCaps;
  DWORD             TextureAddressCaps;
  DWORD             VolumeTextureAddressCaps;
  DWORD             LineCaps;
  DWORD             MaxTextureWidth;
  DWORD             MaxTextureHeight;
  DWORD             MaxVolumeExtent;
  DWORD             MaxTextureRepeat;
  DWORD             MaxTextureAspectRatio;
  DWORD             MaxAnisotropy;
  float             MaxVertexW;
  float             GuardBandLeft;
  float             GuardBandTop;
  float             GuardBandRight;
  float             GuardBandBottom;
  float             ExtentsAdjust;
  DWORD             StencilCaps;
  DWORD             FVFCaps;
  DWORD             TextureOpCaps;
  DWORD             MaxTextureBlendStages;
  DWORD             MaxSimultaneousTextures;
  DWORD             VertexProcessingCaps;
  DWORD             MaxActiveLights;
  DWORD             MaxUserClipPlanes;
  DWORD             MaxVertexBlendMatrices;
  DWORD             MaxVertexBlendMatrixIndex;
  float             MaxPointSize;
  DWORD             MaxPrimitiveCount;
  DWORD             MaxVertexIndex;
  DWORD             MaxStreams;
  DWORD             MaxStreamStride;
  DWORD             VertexShaderVersion;
  DWORD             MaxVertexShaderConst;
  DWORD             PixelShaderVersion;
  float             PixelShader1xMaxValue;
  DWORD             DevCaps2;
  float             MaxNpatchTessellationLevel;
  DWORD             Reserved5;
  UINT              MasterAdapterOrdinal;
  UINT              AdapterOrdinalInGroup;
  UINT              NumberOfAdaptersInGroup;
  DWORD             DeclTypes;
  DWORD             NumSimultaneousRTs;
  DWORD             StretchRectFilterCaps;
  D3DVSHADERCAPS2_0 VS20Caps;
  D3DPSHADERCAPS2_0 PS20Caps;
  DWORD             VertexTextureFilterCaps;
  DWORD             MaxVShaderInstructionsExecuted;
  DWORD             MaxPShaderInstructionsExecuted;
  DWORD             MaxVertexShader30InstructionSlots;
  DWORD             MaxPixelShader30InstructionSlots;
} D3DCAPS9;

メンバー

DeviceType

型: D3DDEVTYPE

頂点の処理に使用されるリソースの種類を識別する D3DDEVTYPE 列挙型のメンバー。

AdapterOrdinal

型: UINT

この Direct3D デバイスが作成されたアダプター。 この序数は、この Direct3D デバイスを作成した IDirect3D9 インターフェイスのメソッドに渡す場合にのみ有効です。 IDirect3D9 インターフェイスは、GetDirect3D を呼び出すことでいつでも取得できます。

Caps

種類: DWORD

次のドライバー固有の機能。

意味
D3DCAPS_READ_SCANLINE
ディスプレイ ハードウェアは、現在のスキャン行を返すことができます。
D3DCAPS_OVERLAY
ディスプレイ ドライバーは、オーバーレイ機能の検証を可能にするオーバーレイ DDI をサポートしています。 オーバーレイ DDI の詳細については、「 オーバーレイ DDI」を参照してください。
Direct3D 9 と Direct3D 9Ex の違い:

このフラグは、Direct3D 9Ex でのみ使用できます。

 

Caps2

種類: DWORD

D3DCAPS2 で識別されるドライバー固有の機能。

Caps3

種類: DWORD

D3DCAPS3 で識別されるドライバー固有の機能。

PresentationIntervals

種類: DWORD

使用可能なプレゼンテーション スワップ間隔を表す値のビット マスク。

意味
D3DPRESENT_INTERVAL_IMMEDIATE
ドライバーは、即時のプレゼンテーションスワップ間隔をサポートします。
D3DPRESENT_INTERVAL_ONE
ドライバーは、すべての画面更新のプレゼンテーション スワップ間隔をサポートしています。
D3DPRESENT_INTERVAL_TWO
ドライバーは、1 秒ごとの画面更新のプレゼンテーション スワップ間隔をサポートします。
D3DPRESENT_INTERVAL_THREE
ドライバーは、3 つ目の画面更新ごとにプレゼンテーションのスワップ間隔をサポートします。
D3DPRESENT_INTERVAL_FOUR
ドライバーは、4 つ目の画面更新ごとにプレゼンテーションのスワップ間隔をサポートします。

CursorCaps

種類: DWORD

カーソルで使用できるハードウェア サポートを示すビット マスク。 Direct3D 9 では、アルファ ブレンド カーソル機能は定義されていません。

意味
D3DCURSORCAPS_COLOR
フル カラー カーソルは、ハードウェアでサポートされています。 具体的には、このフラグは、ドライバーが高解像度モード (スキャン行が 400 以上) で少なくともハードウェア カラー カーソルをサポートしていることを示します。
D3DCURSORCAPS_LOWRES
フル カラー カーソルは、ハードウェアでサポートされています。 具体的には、このフラグは、ドライバーが高解像度モードと低解像度モードの両方でハードウェア カラー カーソルをサポートしていることを示します (スキャンラインが 400 未満)。

DevCaps

種類: DWORD

デバイスの機能を識別するフラグ。

意味
D3DDEVCAPS_CANBLTSYSTONONLOCAL
デバイスでは、システム メモリ テクスチャからローカル以外のビデオ メモリ テクスチャへの blit がサポートされています。
D3DDEVCAPS_CANRENDERAFTERFLIP
デバイスは、ページ フリップ後にレンダリング コマンドをキューに登録できます。 このフラグが設定されている場合、アプリケーションは動作を変更しません。この機能は、デバイスが比較的高速であることを意味します。
D3DDEVCAPS_DRAWPRIMITIVES2
デバイスは、少なくとも DirectX 5 準拠ドライバーをサポートできます。
D3DDEVCAPS_DRAWPRIMITIVES2EX
デバイスは、少なくとも DirectX 7 準拠ドライバーをサポートできます。
D3DDEVCAPS_DRAWPRIMTLVERTEX
デバイスは IDirect3DDevice9::D rawPrimitive 対応 hal をエクスポートします。
D3DDEVCAPS_EXECUTESYSTEMMEMORY
デバイスでは、システム メモリから実行バッファーを使用できます。
D3DDEVCAPS_EXECUTEVIDEOMEMORY
デバイスでは、ビデオ メモリからの実行バッファーを使用できます。
D3DDEVCAPS_HWRASTERIZATION
デバイスには、シーンのラスター化のためのハードウェア アクセラレーションがあります。
D3DDEVCAPS_HWTRANSFORMANDLIGHT
デバイスは、ハードウェアでの変換と照明をサポートできます。
D3DDEVCAPS_NPATCHES
デバイスでは N 個のパッチがサポートされています。
D3DDEVCAPS_PUREDEVICE
デバイスでは、ハードウェアでのラスター化、変換、照明、およびシェーディングをサポートできます。
D3DDEVCAPS_QUINTICRTPATCHES
デバイスでは、クインティック ベジエ曲線と B スプラインがサポートされています。
D3DDEVCAPS_RTPATCHES
デバイスでは、四角形と三角形のパッチがサポートされています。
D3DDEVCAPS_RTPATCHHANDLEZERO
このデバイス機能が設定されている場合、ハードウェア アーキテクチャは情報のキャッシュを必要とせず、キャッシュされていないパッチ (ハンドル 0) はキャッシュされたパッチと同じくらい効率的に描画されます。 D3DDEVCAPS_RTPATCHHANDLEZEROを設定しても、ハンドルが 0 のパッチを描画できるわけではありません。 ハンドルゼロパッチは、このキャップが設定されているかどうかに関係なく、常に描画できます。
D3DDEVCAPS_SEPARATETEXTUREMEMORIES
デバイスが個別のメモリ プールからテクスチャリングされています。
D3DDEVCAPS_TEXTURENONLOCALVIDMEM
デバイスは、ローカル以外のビデオ メモリからテクスチャを取得できます。
D3DDEVCAPS_TEXTURESYSTEMMEMORY
デバイスは、システム メモリからテクスチャを取得できます。
D3DDEVCAPS_TEXTUREVIDEOMEMORY
デバイスは、デバイス メモリからテクスチャを取得できます。
D3DDEVCAPS_TLVERTEXSYSTEMMEMORY
デバイスは、変換された頂点と点灯した頂点にシステム メモリからのバッファーを使用できます。
D3DDEVCAPS_TLVERTEXVIDEOMEMORY
デバイスでは、変換された頂点と点灯した頂点にビデオ メモリのバッファーを使用できます。

PrimitiveMiscCaps

型: DWORD

その他のドライバー プリミティブ機能。 「D3DPMISCCAPS」を参照してください。

RasterCaps

型: DWORD

ラスター描画機能に関する情報。 このメンバーには、次のフラグの 1 つ以上を指定できます。

意味
D3DPRASTERCAPS_ANISOTROPY
デバイスは異方性フィルタリングをサポートしています。
D3DPRASTERCAPS_COLORPERSPECTIVE
デバイスは、色のパースペクティブを正しく反復処理します。
D3DPRASTERCAPS_DITHER
デバイスはディザリングして色の解像度を向上させることができます。
D3DPRASTERCAPS_DEPTHBIAS
デバイスでは、レガシ深度バイアスがサポートされています。 真の深度バイアスについては、「D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS」を参照してください。
D3DPRASTERCAPS_FOGRANGE
デバイスでは、範囲ベースの霧がサポートされています。 範囲ベースの霧では、ビューアーからのオブジェクトの距離は、シーン内のオブジェクトの深さ (つまり z 座標) ではなく、霧の効果を計算するために使用されます。
D3DPRASTERCAPS_FOGTABLE
デバイスは、特定のピクセルの深さにインデックスが付けられた霧の値を含むルックアップ テーブルを参照して、霧の値を計算します。
D3DPRASTERCAPS_FOGVERTEX
デバイスは、照明操作中に霧の値を計算し、ラスタライズ中に霧の値を補間します。
D3DPRASTERCAPS_MIPMAPLODBIAS
デバイスでは、詳細レベルのバイアス調整がサポートされています。 これらのバイアス調整を使用すると、アプリケーションでミップマップを通常よりも鮮明に表示したり、シャープに表示したりできます。 ミップマップの詳細レベルバイアスの詳細については、「D3DSAMP_MIPMAPLODBIAS」を参照してください。
D3DPRASTERCAPS_MULTISAMPLE_TOGGLE
デバイスでは、IDirect3DDevice9::BeginScene と IDirect3DDevice9::EndScene の間でマルチサンプリングのオンとオフの切り替えがサポートされています (D3DRS_MULTISAMPLEANTIALIASを使用)。
D3DPRASTERCAPS_SCISSORTEST
デバイスは、ハサミテストをサポートしています。 「シザー テスト (Direct3D 9)」を参照してください。
D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS
デバイスは、真の傾きスケールベースの深さのバイアスを実行します。 これは、従来のスタイルの深さのバイアスとは対照的です。
D3DPRASTERCAPS_WBUFFER
デバイスでは、w を使用した深度バッファリングがサポートされています。
D3DPRASTERCAPS_WFOG
デバイスでは、w ベースの霧がサポートされています。 W ベースの霧は、パースペクティブ プロジェクション マトリックスが指定されている場合に使用されますが、アフィン プロジェクションでは Z ベースの霧が引き続き使用されます。 システムは、[3][4] 要素に 0 以外の値を含む射影行列をパースペクティブ投影行列と見なします。
D3DPRASTERCAPS_ZBUFFERLESSHSR
デバイスは、アプリケーションでポリゴンを並べ替える必要がなく、深度バッファーの割り当てを必要とせずに、非表示サーフェス除去 (HSR) を実行できます。 これにより、テクスチャのビデオ メモリが増えます。 HSR の実行に使用されるメソッドは、ハードウェアに依存し、アプリケーションに対して透過的です。

Z バッファーレス HSR は、深度バッファー サーフェスがレンダリング ターゲット サーフェスに関連付けられていない場合に、深度バッファー比較テストが有効になっている場合 (つまり、 D3DRS_ZENABLE 列挙定数に関連付けられている状態値が TRUE に設定されている場合) に実行されます。

D3DPRASTERCAPS_ZFOG
デバイスでは、z ベースの霧がサポートされています。
D3DPRASTERCAPS_ZTEST
デバイスは z テスト操作を実行できます。 これにより、プリミティブが効果的にレンダリングされ、z ピクセルがレンダリングされたかどうかを示します。

ZCmpCaps

型: DWORD

Z バッファー比較機能。 このメンバーには、次のフラグの 1 つ以上を指定できます。

意味
D3DPCMPCAPS_ALWAYS
常に z 検定に合格します。
D3DPCMPCAPS_EQUAL
新しい z が現在の z と等しい場合は、z 検定に合格します。
D3DPCMPCAPS_GREATER
新しい z が現在の z より大きい場合は、z 検定に合格します。
D3DPCMPCAPS_GREATEREQUAL
新しい z が現在の z 以上の場合は、z 検定に合格します。
D3DPCMPCAPS_LESS
新しい z が現在の z より小さい場合は、z 検定に合格します。
D3DPCMPCAPS_LESSEQUAL
新しい z が現在の z 以下の場合は、z 検定に合格します。
D3DPCMPCAPS_NEVER
常に z 検定に失敗します。
D3DPCMPCAPS_NOTEQUAL
新しい z が現在の z と等しくない場合は、z 検定に合格します。

SrcBlendCaps

型: DWORD

ソース ブレンド機能。 このメンバーには、次のフラグの 1 つ以上を指定できます。 (ソースと変換先の RGBA 値は、添字 s と d で示されます)。

意味
D3DPBLENDCAPS_BLENDFACTOR
ドライバーは、D3DBLEND_BLENDFACTORとD3DBLEND_INVBLENDFACTORの両方をサポートしています。 D3DBLEND を参照してください。
D3DPBLENDCAPS_BOTHINVSRCALPHA
ソース ブレンド係数は (1 - As、1 - As、1 - As、1 - As) で、宛先ブレンド係数は (As、As、As、As)、ターゲット ブレンドの選択がオーバーライドされます。
D3DPBLENDCAPS_BOTHSRCALPHA
ドライバーは、D3DBLEND_BOTHSRCALPHA ブレンド モードをサポートしています。 (このブレンド モードは廃止されました。詳細については、「D3DBLEND」を参照してください)。
D3DPBLENDCAPS_DESTALPHA
ブレンド係数は、(A d、Ad、Ad、Ad) です
D3DPBLENDCAPS_DESTCOLOR
ブレンド係数は(RdGdBdAd)である
D3DPBLENDCAPS_INVDESTALPHA
ブレンド係数は (1 - Ad、1 - Ad、1 - Ad、1 - Ad) です
D3DPBLENDCAPS_INVDESTCOLOR
ブレンド係数は (1 -R d、 1 - Gd、1 - Bd、1 - Ad) です
D3DPBLENDCAPS_INVSRCALPHA
ブレンド係数は (1 - As、1 - As、1 - As、1 - As) です。
D3DPBLENDCAPS_INVSRCCOLOR
ブレンド係数は (1 - Rs、1 - Gs、1 - Bs、1 - As) です。
D3DPBLENDCAPS_INVSRCCOLOR2
ブレンド係数は (1 - PSOutColor[1]r, 1 - PSOutColor[1]g, 1 - PSOutColor[1]b, not used)) です。 「 レンダー ターゲット ブレンド」を参照してください。
Direct3D 9 と Direct3D 9Ex の違い:

このフラグは Direct3D 9Ex でのみ使用できます。

 
D3DPBLENDCAPS_ONE
ブレンド係数は (1, 1, 1, 1) です。
D3DPBLENDCAPS_SRCALPHA
ブレンド係数は (As、As、As、As) です。
D3DPBLENDCAPS_SRCALPHASAT
ブレンド係数は (f, f, f, 1);f = min(As, 1 - Ad).
D3DPBLENDCAPS_SRCCOLOR
ブレンド係数は (Rs、Gs、Bs、As) です。
D3DPBLENDCAPS_SRCCOLOR2
ブレンド係数は (PSOutColor[1]r, PSOutColor[1]g, PSOutColor[1]b, not used) です。 「 レンダー ターゲット ブレンド」を参照してください。
Direct3D 9 と Direct3D 9Ex の違い:

このフラグは Direct3D 9Ex でのみ使用できます。

 
D3DPBLENDCAPS_ZERO
ブレンド係数は (0, 0, 0, 0) です。

DestBlendCaps

型: DWORD

変換先ブレンド機能。 このメンバーには、SrcBlendCaps メンバーに対して定義されているのと同じ機能を使用できます。

AlphaCmpCaps

型: DWORD

アルファ テストの比較機能。 このメンバーには、ZCmpCaps メンバーに対して定義されているのと同じ機能フラグを含めることができます。 このメンバーにD3DPCMPCAPS_ALWAYS機能のみが含まれている場合、またはD3DPCMPCAPS_NEVER機能のみが含まれている場合、ドライバーはアルファ テストをサポートしません。 それ以外の場合、フラグはアルファ テストでサポートされている個々の比較を識別します。

ShadeCaps

型: DWORD

シェーディング操作の機能。 一般に、デバイスが特定のコマンドをまったくサポートしている場合は、( D3DSHADEMODE 列挙型で指定されている) D3DSHADE_FLAT モードをサポートしていると想定されます。 このフラグは、ドライバーが Gouraud シェーディングもサポートできるかどうか、およびアルファ 色コンポーネントがサポートされているかどうかを指定します。 アルファ 成分がサポートされていない場合、生成される色のアルファ値は暗黙的に 255 になります。 これは、可能な最大アルファ (つまり、アルファ 成分が完全な強度) です。

三角形の色、反射ハイライト、霧、アルファの各相互運用には、アプリケーションがデバイス ドライバーによって実装される方法を調べるのに使用できる機能フラグがあります。

このメンバーには、次のフラグの 1 つ以上を指定できます。

意味
D3DPSHADECAPS_ALPHAGOURAUDBLEND
デバイスは、Gouraud ブレンド透明度 (D3DSHADEMODE 列挙型のD3DSHADE_GOURAUD状態) のアルファ コンポーネントをサポートできます。 このモードでは、プリミティブのアルファ カラー コンポーネントが頂点に提供され、他のカラー コンポーネントと共に面全体に補間されます。
D3DPSHADECAPS_COLORGOURAUDRGB
デバイスでは、色付きの Gouraud シェーディングをサポートできます。 このモードでは、頂点ごとの色コンポーネント (赤、緑、青) が三角形の面に補間されます。
D3DPSHADECAPS_FOGGOURAUD
デバイスは、Gouraud シェーディング モードで霧をサポートできます。
D3DPSHADECAPS_SPECULARGOURAUDRGB
デバイスでは、反射ハイライトのグールー シェーディングがサポートされています。

TextureCaps

型: DWORD

その他のテクスチャ マッピング機能。 このメンバーには、次のフラグの 1 つ以上を指定できます。

意味
D3DPTEXTURECAPS_ALPHA
テクスチャ ピクセルのアルファがサポートされています。
D3DPTEXTURECAPS_ALPHAPALETTE
デバイスはテクスチャ パレットからアルファを描画できます。
D3DPTEXTURECAPS_CUBEMAP
キューブ テクスチャをサポートします。
D3DPTEXTURECAPS_CUBEMAP_POW2
デバイスでは、キューブ テクスチャ マップに 2 の累乗として指定されたディメンションが必要です。
D3DPTEXTURECAPS_MIPCUBEMAP
デバイスでは、mipmapped キューブ テクスチャがサポートされています。
D3DPTEXTURECAPS_MIPMAP
デバイスでは、mipmapped テクスチャがサポートされています。
D3DPTEXTURECAPS_MIPVOLUMEMAP
デバイスでは、mipmapped ボリューム テクスチャがサポートされています。
D3DPTEXTURECAPS_NONPOW2CONDITIONAL
D3DPTEXTURECAPS_POW2も設定され、条件付きで 2 の累乗ではないディメンションを持つ 2D テクスチャの使用をサポートします。 次のすべての要件が満たされている場合、この機能を公開するデバイスは、このようなテクスチャを使用できます。
  • テクスチャ ステージのテクスチャ アドレス指定モードは、D3DTADDRESS_CLAMPに設定されます。
  • テクスチャ ステージのテクスチャ ラッピングが無効になっています (D3DRS_WRAP n は 0 に設定されています)。
  • Mipmapping は使用されていません (拡大フィルターのみを使用)。
  • テクスチャ形式は 、D3DFMT_DXT5 を使用してD3DFMT_DXT1することはできません。

このフラグが設定されておらず、D3DPTEXTURECAPS_POW2も設定されていない場合、2 の累乗ではないディメンションを持つ 2D テクスチャに対して無条件のサポートが提供されます。

シェーダー計算 (ピクセル シェーダー バージョン 1_0 から 1_3 の bem - ps および texm3x3 - ps 命令など) に基づいて読み取られる段階で、2 の累乗ではないテクスチャを設定することはできません。 たとえば、これらのテクスチャを使用してテクスチャ読み取りにフィードされるバンプを格納できますが、 texbem - pstexbeml - pstexm3x3spec - ps で使用される環境マップは格納できません。 つまり、2 の累乗ではないディメンションを持つテクスチャは、シェーダー内で計算されたテクスチャ座標を使用して対処またはサンプリングすることはできません。 この種類の操作は依存読み取りと呼ばれ、これらの種類のテクスチャでは実行できません。

D3DPTEXTURECAPS_NOPROJECTEDBUMPENV
デバイスは、プログラミング可能な関数シェーダーと固定関数シェーダーで投影されたバンプ環境参照操作をサポートしていません。
D3DPTEXTURECAPS_PERSPECTIVE
透視投影補正テクスチャリングがサポートされています。
D3DPTEXTURECAPS_POW2
D3DPTEXTURECAPS_NONPOW2CONDITIONALが設定されていない場合、すべてのテクスチャの幅と高さが 2 の累乗として指定されている必要があります。 この要件は、キューブ テクスチャまたはボリューム テクスチャには適用されません。

D3DPTEXTURECAPS_NONPOW2CONDITIONALも設定されている場合は、2 の累乗ではないディメンションを持つ 2D テクスチャの使用が条件付きでサポートされます。 詳細については、「D3DPTEXTURECAPS_NONPOW2CONDITIONAL説明」を参照してください。

このフラグが設定されておらず、D3DPTEXTURECAPS_NONPOW2CONDITIONALも設定されていない場合、2 の累乗ではないディメンションを持つ 2D テクスチャに対して無条件のサポートが提供されます。

D3DPTEXTURECAPS_PROJECTED
D3DTTFF_PROJECTED テクスチャ変換フラグをサポートします。 適用すると、デバイスは変換されたテクスチャ座標を最後のテクスチャ座標で除算します。 この機能が存在する場合、投影分割はピクセルごとに発生します。 この機能が存在しないが、射投影分割が発生する必要がある場合は、Direct3D ランタイムによって頂点ごとに実行されます。
D3DPTEXTURECAPS_SQUAREONLY
すべてのテクスチャは正方形である必要があります。
D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE
テクスチャ インデックスは、補間前のテクスチャ サイズによってスケーリングされません。
D3DPTEXTURECAPS_VOLUMEMAP
デバイスでは、ボリューム テクスチャがサポートされています。
D3DPTEXTURECAPS_VOLUMEMAP_POW2
デバイスでは、ボリューム テクスチャ マップに 2 の累乗として指定されたディメンションが必要です。

TextureFilterCaps

型: DWORD

テクスチャのテクスチャ フィルター機能。 ステージごとのフィルター機能は、マルチテクスチャ ブレンドを実行するときにテクスチャ ステージでサポートされているフィルターモードを反映します。 このメンバーには、 D3DPTFILTERCAPS で定義されているステージごとのテクスチャ フィルター フラグを任意に組み合わせて使用できます。

CubeTextureFilterCaps

型: DWORD

キューブ テクスチャのテクスチャ フィルター機能。 ステージごとのフィルター機能は、マルチテクスチャ ブレンドを実行するときにテクスチャ ステージでサポートされているフィルターモードを反映します。 このメンバーには、 D3DPTFILTERCAPS で定義されているステージごとのテクスチャ フィルター フラグを任意に組み合わせて使用できます。

VolumeTextureFilterCaps

型: DWORD

ボリューム テクスチャのテクスチャ フィルター機能。 ステージごとのフィルター機能は、マルチテクスチャ ブレンドを実行するときにテクスチャ ステージでサポートされているフィルターモードを反映します。 このメンバーには、 D3DPTFILTERCAPS で定義されているステージごとのテクスチャ フィルター フラグを任意に組み合わせて使用できます。

TextureAddressCaps

型: DWORD

テクスチャ オブジェクトのテクスチャ アドレス指定機能。 このメンバーには、次のフラグの 1 つ以上を指定できます。

意味
D3DPTADDRESSCAPS_BORDER
デバイスでは、テクスチャ ステージの状態で指定されている [0.0, 1.0] の範囲外の座標を境界線の色に設定D3DSAMP_BORDERCOLORサポートしています。
D3DPTADDRESSCAPS_CLAMP
デバイスは、テクスチャをアドレスにクランプできます。
D3DPTADDRESSCAPS_INDEPENDENTUV
デバイスは、テクスチャの you 座標と v 座標のテクスチャ アドレス指定モードを分離できます。 この機能は、D3DSAMP_ADDRESSUとD3DSAMP_ADDRESSVレンダー状態の値に対応します。
D3DPTADDRESSCAPS_MIRROR
デバイスは、テクスチャをアドレスにミラーできます。
D3DPTADDRESSCAPS_MIRRORONCE
デバイスはテクスチャ座標の絶対値 (したがって、0 の周りのミラーリング) を受け取り、最大値にクランプできます。
D3DPTADDRESSCAPS_WRAP
デバイスは、アドレスにテクスチャをラップできます。

VolumeTextureAddressCaps

型: DWORD

ボリューム テクスチャのテクスチャ アドレス指定機能。 このメンバーには、TextureAddressCaps メンバーに対して定義されているフラグを 1 つ以上指定できます。

LineCaps

型: DWORD

線描画プリミティブの機能を定義します。

意味
D3DLINECAPS_ALPHACMP
アルファ テストの比較をサポートします。
D3DLINECAPS_ANTIALIAS
アンチエイリアシングされた行がサポートされています。
D3DLINECAPS_BLEND
ソース ブレンドをサポートします。
D3DLINECAPS_FOG
霧をサポートします。
D3DLINECAPS_TEXTURE
テクスチャ マッピングをサポートします。
D3DLINECAPS_ZTEST
z バッファー比較をサポートします。

MaxTextureWidth

型: DWORD

このデバイスの最大テクスチャ幅。

MaxTextureHeight

型: DWORD

このデバイスの最大テクスチャの高さ。

MaxVolumeExtent

型: DWORD

ボリューム テクスチャの 3 つのディメンション (幅、高さ、奥行き) の最大値。

MaxTextureRepeat

型: DWORD

この数値は、正規化後テクスチャ座標の整数ビットの最大範囲を表します。 テクスチャ座標は、整数部分を格納するために 27 ビットを使用し、浮動小数点分数に対して 5 ビットを使用して 32 ビット符号付き整数として格納されます。 最大整数インデックス 2²⁷ は、ハードウェアによるテクスチャ座標のスケーリング方法に応じて、最大テクスチャ座標を決定するために使用されます。

一部のハードウェアでは、上限D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZEが報告されます。 この場合、デバイスはテクスチャ アドレス モードの補間と適用後までテクスチャ サイズによるテクスチャ座標のスケーリングを延期するため、テクスチャをラップできる回数は MaxTextureRepeat の整数値によって指定されます。

望ましくないのは、一部のハードウェアD3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZEが設定されておらず、デバイスは補間の前にテクスチャのサイズ (最も高い詳細レベルを使用) でテクスチャ座標をスケーリングします。 これにより、テクスチャを MaxTextureRepeat/テクスチャ サイズにラップできる回数が制限されます。

たとえば、MaxTextureRepeat が 32k で、テクスチャのサイズが 4k であるとします。 ハードウェアがD3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE設定した場合、テクスチャをラップできる回数は、この例では 32k の MaxTextureRepeat と等しくなります。 それ以外の場合、テクスチャをラップできる回数は、MaxTextureRepeat をテクスチャ サイズ (この例では 32k/4k) で割った回数になります。

MaxTextureAspectRatio

型: DWORD

ハードウェアでサポートされる最大テクスチャ縦横比 (通常は 2 の累乗)。

MaxAnisotropy

型: DWORD

D3DSAMP_MAXANISOTROPYテクスチャ ステージ状態の最大有効値。

MaxVertexW

型: float

デバイスがサポートする W ベースの深さの最大値。

GuardBandLeft

型: float

ガードバンドクリッピング領域の画面空間座標。 この四角形内の座標が、ビューポートの四角形の外側に自動的にクリップされます。

GuardBandTop

型: float

ガードバンドクリッピング領域の画面空間座標。 この四角形内の座標が、ビューポートの四角形の外側に自動的にクリップされます。

GuardBandRight

型: float

ガードバンドクリッピング領域の画面空間座標。 この四角形内の座標が、ビューポートの四角形の外側に自動的にクリップされます。

GuardBandBottom

型: float

ガードバンドクリッピング領域の画面空間座標。 この四角形内の座標が、ビューポートの四角形の外側に自動的にクリップされます。

ExtentsAdjust

型: float

アンチエイリアシング カーネルに対応するように四角形の外側にエクステントを調整するピクセル数。

StencilCaps

型: DWORD

サポートされているステンシル バッファー操作を指定するフラグ。 ステンシル操作は、3 つのステンシル バッファー操作のレンダリング状態 (D3DRS_STENCILFAIL、D3DRS_STENCILPASS、D3DRS_STENCILZFAIL) すべてに対して有効であると見なされます。

詳細については、「 D3DSTENCILCAPS」を参照してください。

FVFCaps

型: DWORD

柔軟な頂点形式機能。

意味
D3DFVFCAPS_DONOTSTRIPELEMENTS
頂点要素を削除しないことをお勧めします。 つまり、頂点形式に現在のレンダリング状態で使用されていない要素が含まれている場合は、頂点を再生成する必要はありません。 この機能フラグが存在しない場合、頂点形式から余分な要素を削除すると、パフォーマンスが向上します。
D3DFVFCAPS_PSIZE
ポイント サイズは、レンダリング状態または頂点データによって決まります。 FVF を使用する場合、頂点のサイズは頂点宣言のポイント サイズ データから取得できます。 それ以外の場合、ポイント サイズはレンダー状態D3DRS_POINTSIZEによって決まります。 アプリケーションがポイント サイズ (レンダリング状態と頂点宣言) の両方を提供する場合、頂点データはレンダリング状態データをオーバーライドします。
D3DFVFCAPS_TEXCOORDCOUNTMASK
FVFCaps の低い WORD をマスクします。 これらのビットは、WORD データ型にキャストされ、デバイスが複数のテクスチャ ブレンドに同時に使用できるテクスチャ座標セットの合計数を記述します。 (任意の頂点に最大 8 個のテクスチャ座標セットを使用できますが、デバイスは指定した数のテクスチャ座標セットのみを使用してブレンドできます)。

TextureOpCaps

種類: DWORD

このデバイスでサポートされるテクスチャ操作を記述するフラグの組み合わせ。 次のフラグが定義されています。

意味
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_LERP
D3DTOP_LERPテクスチャ ブレンド操作がサポートされています。
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_MULTIPLYADD
D3DTOP_MULTIPLYADD テクスチャ ブレンド操作がサポートされています。
D3DTEXOPCAPS_PREMODULATE
D3DTOP_PREMODULATEテクスチャ ブレンド操作がサポートされています。
D3DTEXOPCAPS_SELECTARG1
D3DTOP_SELECTARG1テクスチャ ブレンド操作がサポートされています。
D3DTEXOPCAPS_SELECTARG2
D3DTOP_SELECTARG2テクスチャ ブレンド操作がサポートされています。
D3DTEXOPCAPS_SUBTRACT
D3DTOP_SUBTRACT テクスチャ ブレンド操作がサポートされています。

MaxTextureBlendStages

種類: DWORD

固定関数パイプラインでサポートされるテクスチャ ブレンド ステージの最大数。 この値は、使用可能なブレンダーの数です。 プログラム可能なピクセル パイプラインでは、ピクセル シェーダー命令で使用される一意のテクスチャ レジスタの数に対応します。

MaxSimultaneousTextures

種類: DWORD

固定関数パイプライン サンプラー ステージに同時にバインドできるテクスチャの最大数。 同じテクスチャが 2 つのサンプラー ステージにバインドされている場合、2 つのテクスチャとしてカウントされます。

この値は、サンプラーステージの数が各ピクセルシェーダーバージョンによって決定されるプログラミング可能なパイプラインでは意味がありません。 各ピクセル シェーダーのバージョンによって、テクスチャ宣言命令の数も決定されます。 「ピクセル シェーダー」を参照してください。

VertexProcessingCaps

種類: DWORD

頂点処理機能。 特定の物理デバイスの場合、この機能は 、CreateDevice に指定されたパラメーターに応じて Direct3D デバイスによって異なる場合があります。 「D3DVTXPCAPS」を参照してください。

MaxActiveLights

種類: DWORD

同時にアクティブにできるライトの最大数。 特定の物理デバイスの場合、この機能は 、CreateDevice に指定されたパラメーターに応じて Direct3D デバイスによって異なる場合があります。

MaxUserClipPlanes

種類: DWORD

サポートされているユーザー定義クリッピング プレーンの最大数。 このメンバーは 0 にすることができます。 特定の物理デバイスの場合、この機能は 、CreateDevice に指定されたパラメーターに応じて Direct3D デバイスによって異なる場合があります。

MaxVertexBlendMatrices

種類: DWORD

マルチマトリックス頂点ブレンドを実行するときにこのデバイスが適用できるマトリックスの最大数。 特定の物理デバイスの場合、この機能は 、CreateDevice に指定されたパラメーターに応じて Direct3D デバイスによって異なる場合があります。

MaxVertexBlendMatrixIndex

種類: DWORD

頂点ごとのインデックスを使用してインデックスを作成できる最大マトリックス インデックスを指定する DWORD 値。 行列の数は MaxVertexBlendMatrixIndex + 1 です。これはマトリックス パレットのサイズです。 照明用にブレンドする必要がある頂点データに法線が存在する場合、行列の数は、この機能フラグで指定された数の半分になります。 MaxVertexBlendMatrixIndex が 0 に設定されている場合、ドライバーはインデックス付き頂点ブレンドをサポートしません。 この値が 0 でない場合、インデックスの有効な範囲は MaxVertexBlendMatrixIndex を通じて 0 になります。

MaxVertexBlendMatrixIndex の 0 の値は、ドライバーがインデックス付きマトリックスをサポートしていないことを示します。

ソフトウェア頂点処理を使用する場合、通常のブレンドの有無にかかわらず、インデックス付き頂点ブレンドに 256 個のマトリックスを使用できます。

特定の物理デバイスの場合、この機能は 、CreateDevice に指定されたパラメーターに応じて Direct3D デバイスによって異なる場合があります。

MaxPointSize

型: float

ポイント プリミティブの最大サイズ。 1.0f に設定すると、デバイスはポイント サイズの制御をサポートしません。 範囲が 1.0f 以上です。

MaxPrimitiveCount

型: DWORD

各 DrawPrimitive 呼び出しのプリミティブの最大数。 次の 2 つのケースがあります。

  • MaxPrimitiveCount が0xffffと等しくない場合は、各描画呼び出しで最大 MaxPrimitiveCount プリミティブを描画できます。
  • ただし、MaxPrimitiveCount が0xffffに等しい場合でも、最大 MaxPrimitiveCount プリミティブを描画できますが、MaxPrimitiveCount 固有の頂点を使用する場合もあります (各プリミティブで 3 つの異なる頂点を使用できる可能性があるため)。

MaxVertexIndex

型: DWORD

ハードウェア頂点処理でサポートされるインデックスの最大サイズ。 32 ビット インデックス バッファーを作成できます。ただし、この値が 0x0000FFFF より大きい場合を除き、インデックス バッファーを使用してレンダリングすることはできません。

MaxStreams

型: DWORD

SetStreamSource の同時実行データ ストリームの最大数。 有効な範囲は 1 ~ 16 です。 この値が 0 の場合、ドライバーは Direct3D 9 ドライバーではないことに注意してください。

MaxStreamStride

型: DWORD

SetStreamSource の最大ストライド。

VertexShaderVersion

型: DWORD

頂点シェーダー メインとサブ バージョンを表す 2 つの数値。 頂点シェーダーの各バージョンでサポートされる手順の詳細については、「 バージョン 1_xバージョン 2_0、バージョン 2_0拡張、または バージョン 3_0」を参照してください。

MaxVertexShaderConst

型: DWORD

定数用に予約されている頂点シェーダー 頂点シェーダー レジスタ の数。

PixelShaderVersion

型: DWORD

ピクセル シェーダー メインとサブ バージョンを表す 2 つの数値。 ピクセル シェーダーの各バージョンでサポートされる手順の詳細については、「 バージョン 1_xバージョン 2_0、バージョン 2_0拡張、または バージョン 3_0」を参照してください。

PixelShader1xMaxValue

型: float

ピクセル シェーダー算術コンポーネントの最大値。 この値は、ピクセル カラー ブレンド操作でサポートされる値の内部範囲を示します。 報告対象の範囲内で、実装では、データが変更されていない (非clamped) ピクセル処理を通過できるようにする必要があります。 通常、このメンバーの値は絶対値です。 たとえば、1.0 は範囲が -1.0 から 1 であることを示し、8.0 は範囲が -8.0 から 8.0 であることを示します。 ピクセル シェーダーを >サポートするハードウェアの場合、値は = 1.0 である必要があります。

DevCaps2

型: DWORD

アダプティブ テセレーションのデバイス ドライバー機能。 詳細については、「D3DDEVCAPS2」を参照してください。

MaxNpatchTessellationLevel

TBD

Reserved5

TBD

MasterAdapterOrdinal

型: UINT

この数値は、この下位のマスターであるデバイスを示します。 この数値は、アダプターの値と同じ領域から取得されます。

マルチヘッド サポートの場合、1 つのヘッドにはマスター ヘッドが示され、同じカード上の他のすべてのヘッドは下位ヘッドとして示されます。 システムに複数のマルチヘッド アダプターが存在する場合、1 つのマルチヘッド アダプターのマスターとその下位はグループと呼ばれます。

AdapterOrdinalInGroup

型: UINT

この数値は、API によってヘッドが参照される順序を示します。 マスター アダプターの値は常に 0 です。 これらの値は、アダプターの序数に対応していません。 これらは、グループ内のヘッドにのみ適用されます。

NumberOfAdaptersInGroup

型: UINT

このアダプター グループ内のアダプターの数 (マスターの場合のみ)。 これは、従来のアダプターの場合は 1 になります。 マルチヘッド カードのマスター アダプターの場合、値は 1 より大きくなります。 複数ヘッド カードの下位アダプターの場合、値は 0 になります。 各カードには、最大で 1 つのマスターシェイプを含めることができますが、多くの下位を持つことができます。

DeclTypes

型: DWORD

頂点宣言に含まれる 1 つ以上のデータ型の組み合わせ。 「D3DDTCAPs」を参照してください。

NumSimultaneousRTs

型: DWORD

同時レンダー ターゲットの数。 この数値は 1 つ以上である必要があります。

StretchRectFilterCaps

型: DWORD

StretchRect でサポートされる操作を記述する定数の組み合わせ。 このフィールドに設定できるフラグは次のとおりです。

常時 説明
D3DPTFILTERCAPS_MINFPOINT Device では、四角形を縮小するためのポイントサンプル フィルター処理がサポートされています。 このフィルターの種類は、D3DTEXF_POINTを使用して StretchRect を 呼び出すことによって要求されます。
D3DPTFILTERCAPS_MAGFPOINT デバイスでは、四角形を拡大するためのポイントサンプル フィルター処理がサポートされています。 このフィルターの種類は、D3DTEXF_POINTを使用して StretchRect を 呼び出すことによって要求されます。
D3DPTFILTERCAPS_MINFLINEAR デバイスでは、四角形を縮小するための二次補間フィルター処理がサポートされています。 このフィルターの種類は、D3DTEXF_LINEARを使用して StretchRect を 呼び出すことによって要求されます。
D3DPTFILTERCAPS_MAGFLINEAR デバイスでは、拡大四角形の二次補間フィルター処理がサポートされています。 このフィルターの種類は、D3DTEXF_LINEARを使用して StretchRect を 呼び出すことによって要求されます。
 

詳細については、「 D3DTEXTUREFILTERTYPE 」および「 D3DTEXTUREFILTERTYPE」を参照してください

VS20Caps

種類: D3DVSHADERCAPS2_0

デバイスでは、頂点シェーダー バージョン 2_0 の拡張機能がサポートされています。 「D3DVSHADERCAPS2_0」を参照してください。

PS20Caps

種類: D3DPSHADERCAPS2_0

デバイスでは、ピクセル シェーダー バージョン 2_0 の拡張機能がサポートされています。 「D3DPSHADERCAPS2_0」を参照してください。

VertexTextureFilterCaps

型: DWORD

デバイスでは、頂点シェーダー テクスチャ フィルター機能がサポートされています。 「D3DPTFILTERCAPS」を参照してください。

MaxVShaderInstructionsExecuted

型: DWORD

フロー制御を使用するときに実行できる頂点シェーダー命令の最大数。 プログラミングできる命令の最大数は、MaxVertexShader30InstructionSlots です。

MaxPShaderInstructionsExecuted

型: DWORD

フロー制御を使用するときに実行できるピクセル シェーダー命令の最大数。 プログラミングできる命令の最大数は MaxPixelShader30InstructionSlots です。

MaxVertexShader30InstructionSlots

型: DWORD

サポートされている頂点シェーダー命令スロットの最大数。 この上限で設定できる最大値は 32768 です。 vs_3_0をサポートするデバイスは、少なくとも 512 個の命令スロットをサポートする必要があります。

MaxPixelShader30InstructionSlots

型: DWORD

サポートされているピクセル シェーダー命令スロットの最大数。 この上限で設定できる最大値は 32768 です。 ps_3_0をサポートするデバイスは、少なくとも 512 個の命令スロットをサポートする必要があります。

解説

MaxTextureBlendStages メンバーと MaxSimultaneousTextures メンバーは似ているように見えるかもしれませんが、異なる情報が含まれています。 MaxTextureBlendStages メンバーには、現在のデバイスでサポートされているテクスチャ ブレンド ステージの合計数が含まれており、MaxSimultaneousTextures メンバーは 、SetTexture メソッドを使用してそれらのステージにバインドできるステージの数を記述します。

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

一般に、テクスチャを使用し、シーン中にテクスチャを変更すると、パフォーマンスの問題が発生する可能性があります。 絶対に必要でない限り、現在の BeginScene ブロックと EndScene ブロックで使用されているテクスチャが削除されていないことを確認します。 シーン内でのテクスチャの使用率が非常に高い場合、結果は未定義です。 これは、シーンで使用したテクスチャを変更し、使用可能なスペア テクスチャ メモリがない場合に発生します。 このようなシステムの場合、z バッファーの内容は EndScene で無効になります。 アプリケーションは、BeginScene/EndScene ペア内のこの種類のハードウェアのバック バッファーに 対して UpdateSurface を呼び出さないでください。 さらに、D3DPRASTERCAPS_ZBUFFERLESSHSR機能フラグが設定されている場合、アプリケーションは z バッファーへのアクセスを試行しないでください。 最後に、アプリケーションは、BeginScene/EndScene ペア内のバック バッファーまたは z バッファーをロックしないでください。

Mipmapped テクスチャに関する次のフラグは、Direct3D 9 ではサポートされていません。

  • D3DPTFILTERCAPS_LINEAR
  • D3DPTFILTERCAPS_LINEARMIPLINEAR
  • D3DPTFILTERCAPS_LINEARMIPNEAREST
  • D3DPTFILTERCAPS_MIPNEAREST
  • D3DPTFILTERCAPS_NEAREST

要件

   
Header d3d9caps.h

関連項目

Direct3D 構造体

GetDeviceCaps