D3DCAPS9 構造体

D3DCAPS9 構造体

Microsoft® 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 MaxNpatchTesselationLevel;
    float MinAntialiasedLineWidth;
    float MaxAntialiasedLineWidth;
    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;
    DWORD Reserved2;
    DWORD Reserved3;
} D3DCAPS9;

メンバ

  • DeviceType
    D3DDEVTYPE 列挙型のメンバであり、頂点の処理に使用されるリソースのタイプを示す。

  • AdapterOrdinal
    この Direct3DDevice オブジェクトが作成されたアダプタ。この序数は、この Direct3DDevice オブジェクトを作成した IDirect3D9 インターフェイスのメソッドに渡す場合にのみ有効である。IDirect3D9 インターフェイスは、常に、IDirect3DDevice9::GetDirect3D を呼び出すことで取得できる。

  • Caps
    以下に、ドライバ固有の能力を示す。

    • D3DCAPS_READ_SCANLINE
      ディスプレイ ハードウェアが、現在の走査線を返せることを示す。
  • Caps2
    D3DCAPS2 で指定されたドライバ固有の能力。

  • Caps3
    D3DCAPS3 で指定されたドライバ固有の能力。

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

    • D3DPRESENT_INTERVAL_IMMEDIATE
      ドライバは、即時プレゼンテーション スワップ間隔をサポートしている。
    • D3DPRESENT_INTERVAL_ONE
      ドライバは、スクリーン リフレッシュのプレゼンテーション スワップ間隔をサポートしている。
    • D3DPRESENT_INTERVAL_TWO
      ドライバは、2 回目のスクリーン リフレッシュのプレゼンテーション スワップ間隔をサポートしている。
    • D3DPRESENT_INTERVAL_THREE
      ドライバは、3 回目のスクリーン リフレッシュのプレゼンテーション スワップ間隔をサポートしている。
    • D3DPRESENT_INTERVAL_FOUR
      ドライバは、4 回目のスクリーン リフレッシュのプレゼンテーション スワップ間隔をサポートしている。
  • CursorCaps
    カーソルに対して利用可能なハードウェア サポートを示すビット マスク。Microsoft DirectX® 9.0 では、アルファ ブレンディング カーソルの能力は定義されていない。

    • D3DCURSORCAPS_COLOR
      ハードウェアは、フルカラー カーソルをサポートしている。具体的には、このフラグは、ドライバが高解像度モード (走査線が 400 以上) で、少なくともハードウェア カラー カーソルをサポートしていることを示す。
    • D3DCURSORCAPS_LOWRES
      ハードウェアは、フルカラー カーソルをサポートしている。具体的には、このフラグは、ドライバが高解像度モードと低解像度モード (走査線が 400 未満) の両方で、ハードウェア カラー カーソルをサポートしていることを示す。
  • DevCaps
    デバイスの能力を示すフラグ。

    • D3DDEVCAPS_CANBLTSYSTONONLOCAL
      デバイスは、システム メモリ テクスチャから非ローカル ビデオ メモリ テクスチャへのブリットをサポートする。
    • D3DDEVCAPS_CANRENDERAFTERFLIP
      デバイスは、ページ フリップの後で、レンダリング コマンドをキューに入れることができる。このフラグはアプリケーションの動作を変えるものではない。デバイスが比較的高速であることを示しているだけである。
    • D3DDEVCAPS_DRAWPRIMITIVES2
      デバイスは DrawPrimitives2 をサポートできる。
    • D3DDEVCAPS_DRAWPRIMITIVES2EX
      デバイスは拡張 DrawPrimitives2 をサポートできる。これは、DirectX 7.0 準拠のドライバである。
    • D3DDEVCAPS_DRAWPRIMTLVERTEX
      デバイスは、DrawPrimitive 対応のハードウェア アブストラクション レイヤ (HAL) をエクスポートする。
    • D3DDEVCAPS_EXECUTESYSTEMMEMORY
      デバイスは、システム メモリにある実行バッファを使用できる。
    • D3DDEVCAPS_EXECUTEVIDEOMEMORY
      デバイスは、ビデオ メモリにある実行バッファを使用できる。
    • D3DDEVCAPS_HWRASTERIZATION
      デバイスには、シーンのラスタ化用のハードウェア アクセラレーションがある。
    • D3DDEVCAPS_HWTRANSFORMANDLIGHT
      デバイスは、ハードウェアでトランスフォーム & ライティングをサポートできる。
    • D3DDEVCAPS_NPATCHES
      デバイスは、N パッチをサポートする。
    • D3DDEVCAPS_PUREDEVICE
      デバイスは、ハードウェアでラスタ化、トランスフォーム、ライティング、およびシェーディングをサポートできる。
    • D3DDEVCAPS_QUINTICRTPATCHES
      デバイスは、5 次ベジェ曲線および B スプラインをサポートしている。
    • D3DDEVCAPS_RTPATCHES
      デバイスは、矩形および三角形パッチをサポートしている。
    • D3DDEVCAPS_RTPATCHHANDLEZERO
      このデバイス能力が設定されている場合、ハードウェア アーキテクチャで情報をキャッシュする必要がなく、キャッシュされていないパッチ (ハンドル 0) は、キャッシュされたパッチと同様、効率的に描画される。D3DDEVCAPS_RTPATCHHANDLEZERO の設定はハンドル 0 のパッチが描画できることを意味するのではないことに注意すること。ハンドル 0 のパッチは、この能力が設定されているかどうかに関係なく、常に描画できる。
    • D3DDEVCAPS_SEPARATETEXTUREMEMORIES
      デバイスは、独立したメモリ プールからテクスチャ処理を行っている。
    • D3DDEVCAPS_TEXTURENONLOCALVIDMEM
      デバイスは、非ローカル ビデオ メモリからテクスチャを取得できる。
    • D3DDEVCAPS_TEXTURESYSTEMMEMORY
      デバイスは、システム メモリからテクスチャを取得できる。
    • D3DDEVCAPS_TEXTUREVIDEOMEMORY
      デバイスは、デバイス メモリからテクスチャを取得できる。
    • D3DDEVCAPS_TLVERTEXSYSTEMMEMORY
      デバイスは、トランスフォーム済みライティング済みの頂点用に、システム メモリのバッファを使用できる。
    • D3DDEVCAPS_TLVERTEXVIDEOMEMORY
      デバイスは、トランスフォーム済みライティング済みの頂点用に、ビデオ メモリのバッファを使用できる。
  • PrimitiveMiscCaps
    その他のドライバのプリミティブの能力。「D3DPMISCCAPS」を参照すること。

  • RasterCaps
    ラスタ描画能力の情報。このメンバには、次の 1 つまたは複数のフラグを設定できる。

    • D3DPRASTERCAPS_ANISOTROPY
      デバイスは、異方性フィルタリングをサポートする。

    • D3DPRASTERCAPS_COLORPERSPECTIVE
      デバイスは、色のパースペクティブを正しく補間する。

    • D3DPRASTERCAPS_DITHER
      デバイスは、ディザリングを使用して良質な色を再現できる。

    • D3DPRASTERCAPS_DEPTHBIAS
      デバイスは以前の深度バイアスをサポートする。真の深度バイアスについては、「D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS」を参照すること。

    • D3DPRASTERCAPS_FOGRANGE
      デバイスは、範囲ベースのフォグをサポートする。範囲ベースのフォグでは、シーンにおけるオブジェクトの深度 (z 座標) ではなく、視点からオブジェクトへの距離でフォグ エフェクトを計算する。

    • D3DPRASTERCAPS_FOGTABLE
      デバイスは、ピクセルの深さを指すフォグ値を含む参照テーブルと照合して、フォグ値を算出する。

    • D3DPRASTERCAPS_FOGVERTEX
      デバイスは、ライティング処理の際にフォグ値を計算し、ラスタ化の際にフォグ値を補間する。

    • D3DPRASTERCAPS_MIPMAPLODBIAS
      デバイスは、詳細レベル (LOD) バイアス調整をサポートする。これらのバイアス調整により、ミップマップを普通よりもすっきりと、またはあまり鋭くなく見せることができる。ミップマップの LOD バイアスの詳細については、「D3DSAMP_MIPMAPLODBIAS」を参照すること。

    • D3DPRASTERCAPS_MULTISAMPLE_TOGGLE
      IDirect3DDevice9::BeginSceneIDirect3DDevice9::EndScene の間でのマルチサンプリングのオンとオフの切り替えをサポートする (D3DRS_MULTISAMPLEANTIALIAS を使う)。

    • D3DPRASTERCAPS_SCISSORTEST
      デバイスは、シザー テストをサポートする。「シザー テスト」を参照すること。

    • D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS
      デバイスは、真のスロープスケール ベースの深度バイアスを実行する。これは、従来の D3DPRASTERCAPS_DEPTHBIAS とは異なる。

    • D3DPRASTERCAPS_WBUFFER
      デバイスは、w を使用する深度バッファリングをサポートする。

    • D3DPRASTERCAPS_WFOG
      デバイスは、w ベースのフォグをサポートする。W ベースのフォグは、パースペクティブ射影行列が指定された場合に使用されるが、アフィン射影では現在でも Z ベースのフォグが使用される。システムは、[3][4] 要素がゼロ以外の値を持つ射影行列をパースペクティブ射影行列であると見なす。

    • D3DPRASTERCAPS_ZBUFFERLESSHSR
      デバイスは、隠れ面の除去 (HRS) を実行でき、このとき、ポリゴンのソートや深度バッファの割り当てを必要としない。これにより、より多くのビデオ メモリをテクスチャ用に使うことができる。HSR を実行するために使用するメソッドはハードウェアの機能に依存し、アプリケーションに対しては透過的である。

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

    • D3DPRASTERCAPS_ZFOG
      デバイスは、z ベースのフォグをサポートする。

    • D3DPRASTERCAPS_ZTEST
      デバイスは、z テスト処理を実行できる。この値は、効果的にプリミティブをレンダリングし、Z ピクセルがレンダリングされたかどうかを示す。

  • ZCmpCaps
    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
    ソース ブレンディング能力。このメンバには、次の 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
      ブレンディング係数は (Ad, Ad, Ad, Ad)。
    • D3DPBLENDCAPS_DESTCOLOR
      ブレンディング係数は (Rd, Gd, Bd, Ad)。
    • D3DPBLENDCAPS_INVDESTALPHA
      ブレンディング係数は (1-Ad, 1-Ad, 1-Ad, 1-Ad)。
    • D3DPBLENDCAPS_INVDESTCOLOR
      ブレンディング係数は (1-Rd, 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_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_ZERO
      ブレンディング係数は、(0, 0, 0, 0)。
  • DestBlendCaps
    デスティネーション ブレンディング能力。このメンバは、SrcBlendCaps メンバで定義された能力と同じである。

  • AlphaCmpCaps
    アルファ テスト比較能力。このメンバは、ZCmpCaps メンバで定義された能力フラグを含む。このメンバが D3DPCMPCAPS_ALWAYS 能力だけ、または D3DPCMPCAPS_NEVER 能力だけしか持っていない場合、ドライバはアルファ テストをサポートしない。それ以外の場合、このフラグはアルファ テストをサポートする個々の比較を示す。

  • ShadeCaps
    シェーディング処理能力。一般に、デバイスが指定されたコマンドをサポートしている場合、そのデバイスは D3DSHADE_FLAT モード (D3DSHADEMODE 列挙型で指定される) をサポートすると見なされる。このフラグは、ドライバがグーロー シェーディングもサポートできるかどうか、およびアルファ色成分がサポートされているかどうかを示す。アルファ成分がサポートされていない場合、生成された色のアルファ値は暗黙で 255 になる。この数値が、アルファの最大値 (アルファ成分が最強) である。

    三角形の色、スペキュラ ハイライト、フォグ、およびアルファの各補間要素にはそれぞれ能力フラグがあり、アプリケーションはそのフラグを使用して、デバイス ドライバがそれらをどのように実装しているかを知ることができる。

    このメンバには、次の 1 つまたは複数のフラグを設定できる。

    • D3DPSHADECAPS_ALPHAGOURAUDBLEND
      デバイスは、グーロー ブレンドによる透明化 (D3DSHADEMODE 列挙型の D3DSHADE_GOURAUD ステート) に対するアルファ成分をサポートできる。このモードでは、プリミティブのアルファ成分は頂点で与えられ、他の色成分と共に面に沿って補間される。
    • D3DPSHADECAPS_COLORGOURAUDRGB
      デバイスは、RGB カラー モデルでカラー グーロー シェーディングをサポートできる。このモードでは、プリミティブに対する色成分は頂点で与えられ、他の色成分と共に面に沿って補間される。RGB ライティング モデルでは、赤・緑・青の各成分が補間される。
    • D3DPSHADECAPS_FOGGOURAUD
      デバイスは、グーロー シェーディング モードでフォグをサポートできる。
    • D3DPSHADECAPS_SPECULARGOURAUDRGB
      デバイスは、スペキュラ ハイライトのグーロー シェーディングをサポートする。
  • TextureCaps
    その他のテクスチャ マッピング能力。このメンバには、次の 1 つまたは複数のフラグを設定できる。

    • D3DPTEXTURECAPS_ALPHA
      テクスチャ ピクセルにおいてアルファがサポートされる。

    • D3DPTEXTURECAPS_ALPHAPALETTE
      デバイスは、テクスチャ パレットからアルファを描画できる。

    • D3DPTEXTURECAPS_CUBEMAP
      キューブ テクスチャをサポートする。

    • D3DPTEXTURECAPS_CUBEMAP_POW2
      デバイスでは、キューブ テクスチャ マップのディメンジョンは 2 の累乗で指定されなければならない。

    • D3DPTEXTURECAPS_MIPCUBEMAP
      デバイスは、ミップマップ化キューブ テクスチャをサポートする。

    • D3DPTEXTURECAPS_MIPMAP
      デバイスは、ミップマップ化テクスチャをサポートする。

    • D3DPTEXTURECAPS_MIPVOLUMEMAP
      デバイスは、ミップマップ化ボリューム テクスチャをサポートする。

    • D3DPTEXTURECAPS_NONPOW2CONDITIONAL
      条件付きで 2 の累乗でないディメンジョンでの 2D テクスチャの使用をサポートする。この能力を公開するデバイスは、次の要件がすべて満たされる場合にこのようなテクスチャを使える。

      • テクスチャ ステージのテクスチャ アドレシング モードが、D3DTADDRESS_CLAMP に設定されている。
      • テクスチャ ステージのテクスチャ ラッピングが無効になっている (D3DRENDERSTATETYPE n を 0 に設定)。
      • ミップマッピングが使用されていない (拡大フィルタのみを使用)。
      • テクスチャ フォーマットが DXT1-5 であってはならない。

      2 の累乗でないテクスチャは、シェーダ計算に基づいて読み込まれるステージでは設定できない (ピクセル シェーダ バージョン 1_0 ~ 1_3 の bem、beml、texm3x3 命令など)。 たとえば、これらのテクスチャは、テクスチャの読み込みに指定するバンプを格納に使えるが、texbem、texbeml、texm3x3spec で使う環境マップには使えない。つまり、2 の累乗でないディメンジョンのテクスチャは、シェーダ内で計算されたテクスチャ座標を使ってアドレス指定したりサンプルしたりできない。このタイプの演算は従属読み込みと呼ばれ、これらの種類のテクスチャでは実行できない。

    • D3DPTEXTURECAPS_NOPROJECTEDBUMPENV
      デバイスは、プログラム可能および固定機能シェーダ内での射影バンプ環境ルックアップ演算をサポートしない。

    • D3DPTEXTURECAPS_PERSPECTIVE
      パースペクティブ補正のテクスチャリングがサポートされる。

    • D3DPTEXTURECAPS_POW2
      すべてのテクスチャの幅と高さは、2 の累乗で指定する必要がある。この要件は、キューブ テクスチャと ボリューム テクスチャには適用されない。

    • D3DPTEXTURECAPS_PROJECTED
      D3DTTFF_PROJECTED テクスチャ トランスフォーム フラグをサポートする。この能力が適用されている場合、デバイスはトランスフォーム済みテクスチャ座標を最後のテクスチャ座標で除算する。この能力が設定されている場合、ピクセル単位に射影除算が行われる。この能力が設定されていない場合に、射影除算が必要なときは、Direct3D ランタイムによって頂点ごとに行われる。

    • D3DPTEXTURECAPS_SQUAREONLY
      テクスチャは、すべて正方形でなければならない。

    • D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE
      テクスチャ インデックスは、補間実行前には、テクスチャ サイズに合わせてスケーリングされない。

    • D3DPTEXTURECAPS_VOLUMEMAP
      デバイスは、ボリューム テクスチャをサポートする。

    • D3DPTEXTURECAPS_VOLUMEMAP_POW2
      デバイスでは、ボリューム テクスチャ マップのディメンジョンは 2 の累乗で指定されなければならない。

  • TextureFilterCaps
    Direct3DTexture オブジェクトのテクスチャ フィルタリング能力。ステージ単位のフィルタリング能力は、マルチテクスチャ ブレンディングを実行する際にテクスチャ ステージに対してサポートされるフィルタリング モードを示している。このメンバは、D3DPTFILTERCAPS 用に定義されたステージ単位のテクスチャ フィルタリング フラグを任意に組み合わせたものである。

  • CubeTextureFilterCaps
    Direct3DCubeTexture オブジェクトのテクスチャ フィルタリング能力。ステージ単位のフィルタリング能力は、マルチテクスチャ ブレンディングを実行する際にテクスチャ ステージに対してサポートされるフィルタリング モードを示している。このメンバは、D3DPTFILTERCAPS 用に定義されたステージ単位のテクスチャ フィルタリング フラグを任意に組み合わせたものである。

  • VolumeTextureFilterCaps
    Direct3DVolumeTexture オブジェクトのテクスチャ フィルタリング能力。ステージ単位のフィルタリング能力は、マルチテクスチャ ブレンディングを実行する際にテクスチャ ステージに対してサポートされるフィルタリング モードを示している。このメンバは、D3DPTFILTERCAPS 用に定義されたステージ単位のテクスチャ フィルタリング フラグを任意に組み合わせたものである。

  • TextureAddressCaps
    Direct3DTexture オブジェクトのテクスチャ アドレシング能力。このメンバには、次の 1 つまたは複数のフラグを設定できる。

    • D3DPTADDRESSCAPS_BORDER
      デバイスは、D3DSAMP_BORDERCOLOR テクスチャ ステージ ステートで指定される境界色を、[0.0, 1.0] の範囲外の座標に設定できる。
    • D3DPTADDRESSCAPS_CLAMP
      デバイスは、テクスチャをアドレスに固定できる。
    • D3DPTADDRESSCAPS_INDEPENDENTUV
      デバイスは、テクスチャの U 座標と V 座標のテクスチャ アドレシング モードを分離できる。この能力は、D3DSAMP_ADDRESSU および D3DSAMP_ADDRESSV レンダリング ステート値に対応する。
    • D3DPTADDRESSCAPS_MIRROR
      デバイスは、テクスチャをアドレスに反映させることができる。
    • D3DPTADDRESSCAPS_MIRRORONCE
      デバイスは、テクスチャ座標の絶対値を取得し (0 を中心にミラーリング)、最大値に制限する。
    • D3DPTADDRESSCAPS_WRAP
      デバイスは、テクスチャの貼り付けが可能である。
  • VolumeTextureAddressCaps
    Direct3DVolumeTexture オブジェクトのテクスチャ アドレシング能力。このメンバには、TextureAddressCaps メンバ用に定義された 1 つまたは複数のフラグを設定できる。

  • LineCaps
    線描画プリミティブの能力を定義する。

    • D3DLINECAPS_ALPHACMP
      アルファ テスト比較をサポートする。
    • D3DLINECAPS_ANTIALIAS
      アンチエイリアシングされたラインをサポートする。
    • D3DLINECAPS_BLEND
      ソース ブレンディングをサポートする。
    • D3DLINECAPS_FOG
      フォグをサポートする。
    • D3DLINECAPS_TEXTURE
      テクスチャ マッピングをサポートする。
    • D3DLINECAPS_ZTEST
      Z バッファ比較をサポートする。
  • MaxTextureWidth
    このデバイスのテクスチャの幅の最大値。

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

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

  • MaxTextureRepeat
    この数字は、正規化した後のテクスチャ座標の整数ビットの最大範囲を表す。テクスチャ座標は、32 ビットの符号付き整数として格納される。 整数部の格納に 27 ビットを使い、浮動小数点の小数部の格納に 5 ビットを使う。最大整数インデックスである 227 は、最大テクスチャ座標の判別に使われる。 最大テクスチャ座標は、テクスチャ座標のスケーリングがハードウェアによってどのように処理されるかによって異なる。

    たとえば、一部のハードウェアでは D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE が報告される。この場合デバイスは、補間およびテクスチャ アドレシング モードの適用が行われるまでテクスチャ サイズによるテクスチャ座標のスケーリングを行わない。 したがって、テクスチャをラップできる回数は MaxTextureRepeat の整数値によって決まる。

    一方、D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE が設定されていないデバイスでは、補間が行われる前にテクスチャ座標がテクスチャ サイズによって最大詳細レベルでスケーリングされる。この場合、テクスチャをラップできる回数は、MaxTextureRepeat をテクスチャ サイズで割った値になってしまう。

    たとえば、MaxTextureRepeat が 32 KB で、テクスチャのサイズが 4 KB だったとする。ハードウェアで D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE が設定されている場合、テクスチャをラップできる回数は MaxTextureRepeat に等しくなる (この例では 32 KB)。一方、D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE が設定されていない場合は、MaxTextureRepeat をテクスチャ サイズで割った値がテクスチャをラップできる回数になる (この例では 227/4 KB)。

  • MaxTextureAspectRatio
    ハードウェアによってサポートされる、テクスチャの最大アスペクト比。通常は 2 の累乗。

  • MaxAnisotropy
    D3DSAMP_MAXANISOTROPY テクスチャステージ ステートの最大有効値。

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

  • GuardBandLeft
    ガードバンド クリッピング領域の画面空間座標。この矩形内にあり、かつビューポート矩形の外側にある座標は、自動的にクリッピングされる。

  • GuardBandTop
    ガードバンド クリッピング領域の画面空間座標。この矩形内にあり、かつビューポート矩形の外側にある座標は、自動的にクリッピングされる。

  • GuardBandRight
    ガードバンド クリッピング領域の画面空間座標。この矩形内にあり、かつビューポート矩形の外側にある座標は、自動的にクリッピングされる。

  • GuardBandBottom
    ガードバンド クリッピング領域の画面空間座標。この矩形内にあり、かつビューポート矩形の外側にある座標は、自動的にクリッピングされる。

  • ExtentsAdjust
    アンチエイリアス カーネルが収まるように矩形の外辺を調節するためのピクセル数。

  • StencilCaps
    サポートされているステンシル バッファ処理を指定するフラグ。ステンシル処理は、3 種類のステンシル バッファ処理レンダリング ステート (D3DRS_STENCILFAILD3DRS_STENCILPASSD3DRS_STENCILZFAIL) のすべてに対して有効であると見なされる。

    詳細については、「D3DSTENCILCAPS」を参照すること。

  • FVFCaps
    柔軟な頂点フォーマットの能力。

    • D3DFVFCAPS_DONOTSTRIPELEMENTS
      頂点要素は削除しない方がよい。つまり、頂点フォーマットが現在のレンダリング ステートで使用されない要素を含んでいても、頂点を再度生成する必要はない。この能力フラグが指定されていない場合、頂点フォーマットから不要な要素を削除すると、パフォーマンスが向上する。

    • D3DFVFCAPS_PSIZE
      ポイント サイズは、レンダリング ステートまたは頂点データによって決まる。

      D3DFVFCAPS_PSIZE を設定した場合、ポイント サイズは FVF 頂点宣言の D3DFVF_PSIZE データから取り出せる。それ以外の場合は、ポイントサイズはレンダリング ステート D3DRENDERSTATETYPE で決まる。

      アプリケーションがレンダリング ステートと FVF データの両方でポイント サイズを提供する場合、頂点データがレンダリングステート データを上書きする。

    • D3DFVFCAPS_TEXCOORDCOUNTMASK
      FVFCaps の下位 WORD をマスクする。このビットは、WORD データ型にキャストされ、デバイスが複数のテクスチャ ブレンディングに同時に使用できるテクスチャ座標セットの総数を示す。(どの頂点に対しても最大 8 つのテクスチャ座標セットを使用できるが、デバイスでは指定された個数のテクスチャ座標セットのみブレンディングできる)。

  • TextureOpCaps
    このデバイスがサポートするテクスチャ処理を示すフラグの組み合わせ。次のフラグが定義されている。

    • 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
    固定機能パイプラインでサポートされるテクスチャ ブレンディング ステージの最大数。この値は、使用可能なブレンダの数である。プログラマブル ピクセル パイプラインでは、これは、ピクセル シェーダ命令で使う独自のテクスチャ レジスタの数に一致する。

  • MaxSimultaneousTextures
    固定機能パイプラインのテクスチャ ブレンディング ステージに同時にバインドできるテクスチャの最大数。この値は、シングル パスで使用できるテクスチャの数である。2 つのブレンディング ステージで同じテクスチャが使用されている場合、MaxSimultaneousTextures の値に対しては 2 つと見なされる。プログラム可能なパイプラインでは、これは特定のハードウェアのピクセル シェーダによってサポートされるテクスチャ レジスタまたはサンプラ レジスタの数、および使用可能なテクスチャ宣言命令の数を示す。

  • VertexProcessingCaps
    頂点の処理能力。物理デバイスによって、この能力は、IDirect3D9::CreateDevice に指定されたパラメータに応じて Direct3DDevice オブジェクト間で異なることがある。「D3DVTXPCAPS」を参照すること。

  • MaxActiveLights
    同時にアクティブにできるライトの最大数。物理デバイスによって、この能力は、IDirect3D9::CreateDevice に指定されたパラメータに応じて Direct3DDevice オブジェクト間で異なることがある。

  • MaxUserClipPlanes
    サポートされるユーザー定義クリップ面の最大数。このメンバは 0 から D3DMAXUSERCLIPPLANES までの範囲になる。物理デバイスによって、この能力は、IDirect3D9::CreateDevice に指定されたパラメータに応じて Direct3DDevice オブジェクト間で異なることがある。

  • MaxVertexBlendMatrices
    複数の行列による頂点ブレンディングを実行する際にデバイスが適用できる行列の最大数。物理デバイスによって、この能力は、IDirect3D9::CreateDevice に指定されたパラメータに応じて Direct3DDevice オブジェクト間で異なることがある。

  • MaxVertexBlendMatrixIndex
    頂点単位のインデックスを使ってインデックス付けできる最大の行列インデックスを示す DWORD 値。行列の数は MaxVertexBlendMatrixIndex + 1 で、これは行列パレットのサイズである。ライティングにブレンディングする必要のある頂点データに法線が存在する場合、行列の数は、この能力フラグで示されている数の半分になる。MaxVertexBlendMatrixIndex に 0 が設定されている場合、ドライバはインデックス付き頂点ブレンディングをサポートしていない。この値が 0 でない場合、インデックスの有効な範囲は 0 から MaxVertexBlendMatrixIndex までである。

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

    ソフトウェア頂点処理が使われている場合は、法線ブレンディングがあってもなくても、256 個の行列をインデックス付き頂点ブレンディングに使用できる。

    物理デバイスによって、この能力は、IDirect3D9::CreateDevice に指定されたパラメータに応じて Direct3DDevice オブジェクト間で異なることがある。

  • MaxPointSize
    ポイント プリミティブの最大サイズ。1.0f に設定されている場合、デバイスはポイント サイズの制御をサポートしていない。範囲は 1.0f 以上である。

  • MaxPrimitiveCount
    DrawPrimitive の各呼び出しの最大プリミティブ数。Direct3D が DirectX 6.0 または DirectX 7.0 ドライバで動作している場合、このフィールドは 0xFFFF に設定される。この場合、プリミティブの数だけでなく頂点の数もこの値によって制限される。

  • MaxVertexIndex
    ハードウェア頂点処理に対してサポートされるインデックスの最大サイズ。D3DFMT_INDEX32 を指定して 32 ビット インデックス バッファを作成できる。ただし、この値が 0x0000FFFF よりも大きくない場合は、インデックス バッファを使ってレンダリングできない。

  • MaxStreams
    IDirect3DDevice9::SetStreamSource に対する同時データ ストリームの最大数。有効範囲は 1 ~ 16 である。この値が 0 の場合、DirectX 9.0 ドライバではないことに注意する。

  • MaxStreamStride
    IDirect3DDevice9::SetStreamSource の最大ストライド。

  • VertexShaderVersion
    ピクセル シェーダのメイン バージョンとサブ バージョンを表す 2 つの数字。各頂点シェーダ バージョンでサポートされる命令の詳細については、「命令 - vs_1_1」、「命令 - vs_2_0」、「命令 - vs_2_x」および「命令 - vs_3_0」を参照すること。

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

  • PixelShaderVersion
    ピクセル シェーダのメイン バージョンとサブ バージョンを表す 2 つの数字。各ピクセル シェーダ バージョンでサポートされる命令の詳細については、「命令 - vs_1_1」、「命令 - vs_2_0」、「命令 - vs_2_x」および「命令 - vs_3_0」を参照すること。

  • PixelShader1xMaxValue
    ピクセル シェーダの算術コンポーネントの最大値。この値は、ピクセル カラー ブレンディング処理でサポートされる値の内部範囲を示す。レポートされる範囲内では、データが変更 (制限) されずにピクセル処理に渡される必要がある。通常、このメンバの値は絶対値である。たとえば、1.0 は -1.0 ~ 1 の範囲を示し、8.0 は -8.0 ~ 8.0 の範囲を示す。ピクセル シェーダをサポートするハードウェアでは、この値が >= 1.0 でなければならない。

  • DevCaps2
    適応型テセレーションのデバイス ドライバ能力。詳細については、「D3DDEVCAPS2」を参照すること。

  • MaxNpatchTesselationLevel
    N パッチの分割レベルの最大数。プリサンプリングしたディスプレースメント マップを使っているアプリケーションについては、ドライバがこの値に固定する。「テセレーション」および「ディスプレースメント マッピング」を参照すること。

  • MinAntialiasedLineWidth
    アンチエイリアス線の幅の最小値。最小値は 0.0 である。

  • MaxAntialiasedLineWidth
    アンチエイリアス線の幅の最大値。最小値は 1.0 である。

  • MasterAdapterOrdinal
    この数字は、この従属デバイスのマスタとなるデバイスを示す。IDirect3D9 メソッドに渡されるアダプタ値と同じ空間から取得される。

    マルチヘッド サポートでは、1 つのヘッドが "マスタ" ヘッドとなり、同一カード上のその他のヘッドはすべて "従属" ヘッドとなる。システム内に複数のマルチヘッド アダプタが存在する場合、1 つのマルチヘッド アダプタのマスタ ヘッドとその従属ヘッドは "グループ" と呼ばれる。

  • AdapterOrdinalInGroup
    この数字は、アプリケーション プログラミング インターフェイス (API) がヘッドを参照する順番を示す。マスタ アダプタの AdapterOrdinalInGroup は常に 0 である。 これらの値は IDirect3D9 メソッドに渡されるアダプタ番号には対応していない。 これらの値が適用されるのは、グループ内のヘッドに対してのみである。

  • NumberOfAdaptersInGroup
    このアダプタ グループのアダプタの数 (マスタの場合のみ)。通常のアダプタでは 1 になる。マルチヘッド カードのマスタ アダプタでは 1 より大きくなり、マルチヘッド カードの従属アダプタでは 0 になる。カードに複数のマスタ アダプタがあることはないが、従属アダプタは複数になる場合もある。

  • DeclTypes
    頂点の宣言に含まれている 1 つあるいは複数のデータ型の組み合わせ。「D3DDTCAPS」を参照すること。

  • NumSimultaneousRTs
    同時レンダリング ターゲットの数。1 以上でなければならない。

  • StretchRectFilterCaps
    IDirect3DDevice9::StretchRect がサポートしている処理を表す定数の組み合わせ。このフィールドに設定できるフラグ :

    定数 説明
    D3DPTFILTERCAPS_MINFPOINT デバイスは、矩形を縮小するポイントサンプル フィルタリングをサポートする。このフィルタ タイプは、D3DTEXF_POINT を使って IDirect3DDevice9::StretchRect を呼び出すことで要求する。
    D3DPTFILTERCAPS_MAGFPOINT デバイスは、矩形を拡大するポイントサンプル フィルタリングをサポートする。このフィルタ タイプは、D3DTEXF_POINT を使って IDirect3DDevice9::StretchRect を呼び出すことで要求する。
    D3DPTFILTERCAPS_MINFLINEAR デバイスは、矩形を縮小するバイリニア補間フィルタリングをサポートする。このフィルタ タイプは、D3DTEXF_LINEAR を使って IDirect3DDevice9::StretchRect を呼び出すことで要求する。
    D3DPTFILTERCAPS_MAGFLINEAR デバイスは、矩形を拡大するバイリニア補間フィルタリングをサポートする。このフィルタ タイプは、D3DTEXF_LINEAR を使って IDirect3DDevice9::StretchRect を呼び出すことで要求する。

    詳細については、「D3DTEXTUREFILTERTYPE」および「D3DTEXTUREFILTERTYPE」を参照すること。

  • VS20Caps
    デバイスは、頂点シェーダ バージョン 2_0 拡張機能をサポートする。「D3DVS20CAPS」を参照すること。

  • PS20Caps
    デバイスは、ピクセル シェーダ バージョン 2_0 拡張機能をサポートする。「D3DPS20CAPS」を参照すること。

  • VertexTextureFilterCaps
    デバイスは、頂点シェーダ テクスチャ フィルタ機能をサポートする。「D3DPTFILTERCAPS」を参照すること。

  • MaxVShaderInstructionsExecuted
    実行できる頂点シェーダ命令の最大数。

  • MaxPShaderInstructionsExecuted
    実行できる頂点シェーダ命令の最大数。

  • MaxVertexShader30InstructionSlots
    サポートされる頂点シェーダの命令スロットの最大数。設定できる最大数は 32768。vs_3_0 をサポートするデバイスは、少なくとも 512 の命令スロットをサポートできなければならない。

  • MaxPixelShader30InstructionSlots
    サポートされるピクセル シェーダの命令スロットの最大数。設定できる最大数は 32768。vs_3_0 をサポートするデバイスは、少なくとも 512 の命令スロットをサポートできなければならない。

  • Reserved2
    予約済み。

  • Reserved3
    予約済み。

注意

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

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

一般に、テクスチャを使っていて、シーン中にテクスチャ変更すると、パフォーマンスの問題が発生する。現在の IDirect3DDevice9::BeginScene および IDirect3DDevice9::EndScene ブロックで使われているテクスチャが、本当に不用になるまでは、排除されないようにしなければならない。シーンでテクスチャを多用している場合、結果は不定である。これは、シーンで使用したテクスチャを変更するとき、利用可能なテクスチャ メモリが不足する場合に発生する。このようなシステムでは、Z バッファの内容は EndScene で無効になる。アプリケーションは、このタイプのハードウェア上では、BeginSceneEndScene の間で、バック バッファへの、またはバック バッファからの IDirect3DDevice9::UpdateSurface を呼び出すべきではない。さらに、D3DPRASTERCAPS_ZBUFFERLESSHSR 能力フラグが設定されている場合、アプリケーションは Z バッファにアクセスすべきではない。最後に、アプリケーションは BeginSceneEndScene のペアの間で、バック バッファまたは Z バッファをロックすべきではない。

次に示すミップマップ テクスチャ関連のフラグは、DirectX 9.0 ではサポートされていない。

  • D3DPTFILTERCAPS_NEAREST
  • D3DPTFILTERCAPS_LINEAR
  • D3DPTFILTERCAPS_MIPNEAREST
  • D3DPTFILTERCAPS_LINEARMIPNEAREST
  • D3DPTFILTERCAPS_LINEARMIPLINEAR

構造体の情報

ヘッダー d3d9caps.h
最低限のオペレーティング システム Windows 98

参照

IDirect3D9::GetDeviceCapsIDirect3DDevice9::GetDeviceCaps