D3DCAPS9

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;
    UINT MasterAdapterOrdinal;
    UINT AdapterOrdinalInGroup;
    UINT NumberOfAdaptersInGroup;
    DWORD DeclTypes;
    DWORD NumSimultaneousRTs;
    DWORD StretchRectFilterCaps;
    D3DVSHADERCAPS2_0 VS20Caps;
    D3DPSHADERCAPS2_0 D3DPSHADERCAPS2_0;
    DWORD VertexTextureFilterCaps;
    DWORD MaxVShaderInstructionsExecuted;
    DWORD MaxPShaderInstructionsExecuted;
    DWORD MaxVertexShader30InstructionSlots;
    DWORD MaxPixelShader30InstructionSlots;
    DWORD Reserved2;
    DWORD Reserved3;
} D3DCAPS9, *LPD3DCAPS9;

メンバ

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

  • AdapterOrdinal
    この Direct3D オブジェクトが作成されたアダプターです。この序数は、この Direct3D デバイスを作成した 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
    カーソルでどのようなハードウェア サポートが利用できるかを示すビット マスクです。Direct3D 9 では、アルファ ブレンディング カーソルの能力は定義されていません。

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

    • D3DDEVCAPS_CANBLTSYSTONONLOCAL
      デバイスは、システム メモリー テクスチャーから非ローカル ビデオ メモリー テクスチャーへのブリットをサポートしています。
    • D3DDEVCAPS_CANRENDERAFTERFLIP
      デバイスは、ページ フリップ後にレンダリング コマンドをキューに入れることができます。このフラグが設定されてもアプリケーションの動作は変わりません。これは、デバイスが比較的高速であることを示しています。
    • D3DDEVCAPS_DRAWPRIMITIVES2
      デバイスは、少なくとも DirectX 5 に準拠したドライバーをサポートできます。
    • D3DDEVCAPS_DRAWPRIMITIVES2EX
      デバイスは、少なくとも DirectX 7 に準拠したドライバーをサポートできます。
    • D3DDEVCAPS_DRAWPRIMTLVERTEX
      デバイスは、IDirect3DDevice9::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
      デバイスは、詳細レベルのバイアス調整をサポートします。これらのバイアス調整により、ミップマップ処理を行った場合のイメージを通常よりもシャープにしたり、ぼやけた感じにすることができます。ミップマップでの詳細レベルのバイアスの詳細については、「D3DSAMP_MIPMAPLODBIAS」を参照してください。

    • D3DPRASTERCAPS_MULTISAMPLE_TOGGLE
      デバイスは、IDirect3DDevice9::BeginSceneIDirect3DDevice9::EndScene の間でマルチサンプリングのオンとオフの切り替えをサポートします (D3DRS_MULTISAMPLEANTIALIAS を使用します) 。

    • D3DPRASTERCAPS_SCISSORTEST
      デバイスは、シザー テストをサポートします。「シザー テスト (Direct3D 9)」を参照してください。

    • D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS
      デバイスは、正確な勾配スケール ベースの深度バイアスを実行します。これは、従来のスタイルの深度バイアスとは対照的です。

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

    • D3DPRASTERCAPS_WFOG
      デバイスは、w ベースのフォグをサポートします。パースペクティブ射影行列が指定された場合には w ベースのフォグが使用されますが、アフィン射影では z ベースのフォグが使用されます。[3][4] 要素に 0 以外の値を持つ射影行列は、パースペクティブ射影行列と見なされます。

    • 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_INVSRCCOLOR2
      ブレンディング係数は (1 - PSOutColor[1]r, 1 - PSOutColor[1]g, 1 - PSOutColor[1]b, 使用されない) となります。「レンダー ターゲットのブレンディング」を参照してください。

      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, 使用されない) となります。「レンダー ターゲットのブレンディング」を参照してください。

      Direct3D 9 と Direct3D 9Ex の違い

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

    • 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
      デバイスは、カラー グーロー シェーディングをサポートできます。このモードでは、頂点ごとの色成分 (赤、緑、青) が、三角形の面に沿って補間されます。
    • D3DPSHADECAPS_FOGGOURAUD
      デバイスは、グーロー シェーディング モードでフォグをサポートしています。
    • D3DPSHADECAPS_SPECULARGOURAUDRGB
      デバイスは、スペキュラ ハイライトのグーロー シェーディングをサポートしています。
  • TextureCaps
    その他のテクスチャー マッピング能力です。このメンバーには、次のフラグから 1 つ以上を設定できます。

    • D3DPTEXTURECAPS_ALPHA
      テクスチャー ピクセルでのアルファをサポートしています。

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

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

    • D3DPTEXTURECAPS_CUBEMAP_POW2
      キューブ テクスチャー マップのディメンジョンは 2 の累乗で指定する必要があります。

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

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

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

    • D3DPTEXTURECAPS_NONPOW2CONDITIONAL
      D3DPTEXTURECAPS_POW2 も設定されている場合、2 の累乗ではないディメンションでの 2D テクスチャーの利用を条件付きでサポートします。この能力を公開するデバイスは、以下の要件がすべて満たされる場合、このようなテクスチャーを使用できます。

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

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

      2 の累乗ではないテクスチャーは、シェーダー計算 (バージョン 1_0 から 1_3 までのピクセル シェーダーの bem - ps および texm3x3 - ps 命令など) に基づいて読み取られるステージに設定できません。たとえば、このようなテクスチャーにはテクスチャー読み取りに送られるバンプを格納できますが、texbem - pstexbeml - ps、および texm3x3spec - 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
    テクスチャーのテクスチャー フィルタリング能力です。ステージごとのフィルタリング機能は、マルチテクスチャー ブレンディングの実行時に、テクスチャー ステージでサポートされているフィルタリング モードを使用します。このメンバーには、D3DPTFILTERCAPS に定義されたステージごとのテクスチャー フィルタリング フラグを組み合わせた値が設定されます。

  • CubeTextureFilterCaps
    キューブ テクスチャーのテクスチャー フィルタリング能力です。ステージごとのフィルタリング機能は、マルチテクスチャー ブレンディングの実行時に、テクスチャー ステージでサポートされているフィルタリング モードを使用します。このメンバーには、D3DPTFILTERCAPS に定義されたステージごとのテクスチャー フィルタリング フラグを組み合わせた値が設定されます。

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

  • TextureAddressCaps
    テクスチャー オブジェクトのテクスチャー アドレッシング能力です。このメンバーには、次のフラグから 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
    ボリューム テクスチャーのテクスチャー アドレッシング能力です。このメンバーには、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 が 32k で、テクスチャー サイズが 4k だと仮定します。ハードウェアで D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE が設定される場合、テクスチャーをラップできる回数は MaxTextureRepeat に等しくなり、この例では 32k です。D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE が設定されない場合、テクスチャーをラップできる回数は MaxTextureRepeat をテクスチャー サイズで除算した値であり、この例では 32k/4k です。

  • MaxTextureAspectRatio
    ハードウェアがサポートする、テクスチャーの最大アスペクト比です。通常は 2 の累乗になります。

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

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

  • GuardBandLeft
    ガードバンド クリッピング領域のスクリーン空間座標です。この矩形内にあって、しかもビューポート矩形の外側にある座標は、自動的にクリッピングされます。

  • GuardBandTop
    ガードバンド クリッピング領域のスクリーン空間座標です。この矩形内にあって、しかもビューポート矩形の外側にある座標は、自動的にクリッピングされます。

  • GuardBandRight
    ガードバンド クリッピング領域のスクリーン空間座標です。この矩形内にあって、しかもビューポート矩形の外側にある座標は、自動的にクリッピングされます。

  • GuardBandBottom
    ガードバンド クリッピング領域のスクリーン空間座標です。この矩形内にあって、しかもビューポート矩形の外側にある座標は、自動的にクリッピングされます。

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

  • StencilCaps
    サポートされているステンシル バッファー処理を指定するフラグです。ステンシル処理は、3 種類のステンシル バッファー処理レンダリング ステート (D3DRS_STENCILFAIL、D3DRS_STENCILPASS、D3DRS_STENCILZFAIL) のいずれでも有効であると見なされます。 詳細については、「D3DSTENCILCAPS」を参照してください。

  • FVFCaps
    フレキシブル頂点フォーマットの能力です。

    • D3DFVFCAPS_DONOTSTRIPELEMENTS
      頂点要素は削除しないようにします。つまり、頂点フォーマットが現在のレンダリング ステートで使用されない要素を含んでいても、頂点を再度生成する必要はありません。この能力フラグが指定されていない場合、頂点フォーマットから不要な要素を削除すると、パフォーマンスが向上します。
    • D3DFVFCAPS_PSIZE
      ポイント サイズは、レンダリング ステートまたは頂点データによって決定されます。FVF が使用される場合、ポイント サイズは頂点の宣言のポイント サイズ データから得られます。そうでない場合、ポイント サイズはレンダリング ステート D3DRS_POINTSIZE によって決定されます。アプリケーションからポイント サイズが両方の手段 (レンダリング ステートと頂点宣言) で提供される場合、頂点データがレンダリング ステート データをオーバーライドします。
    • 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 つのサンプラー ステージにバインドされる場合は、2 つのテクスチャーとしてカウントされます。 この値は、サンプラー ステージの数が各ピクセル シェーダーのバージョンによって決定されるプログラム可能なパイプラインでは、意味を持ちません。テクスチャー宣言命令の数も、各ピクセル シェーダーのバージョンによって決まります。「ピクセル シェーダー」を参照してください。

  • VertexProcessingCaps
    頂点の処理能力です。一部の物理デバイスの場合、IDirect3D9::CreateDevice に引き渡されるパラメーターによって、この能力が Direct3D デバイスごとに異なることがあります。「D3DVTXPCAPS」を参照してください。

  • MaxActiveLights
    同時にアクティブにできるライトの最大数です。一部の物理デバイスの場合、IDirect3D9::CreateDevice に引き渡されるパラメーターによって、この能力が Direct3D デバイスごとに異なることがあります。

  • MaxUserClipPlanes
    ユーザーが定義できるクリップ面の最大数です。このメンバーは 0 にすることもできます。一部の物理デバイスの場合、IDirect3D9::CreateDevice に引き渡されるパラメーターによって、この能力が Direct3D デバイスごとに異なることがあります。

  • MaxVertexBlendMatrices
    デバイスが、複数の行列による頂点ブレンディングを行う際に適用できる行列の最大数です。一部の物理デバイスの場合、IDirect3D9::CreateDevice に引き渡されるパラメーターによって、この能力が Direct3D デバイスごとに異なることがあります。

  • MaxVertexBlendMatrixIndex
    頂点単位のインデックスでインデックス付けできる行列インデックスの最大値を示す DWORD 値です。行列の数は MaxVertexBlendMatrixIndex + 1 で、行列パレットのサイズです。ライティング用にブレンディングが必要な頂点データに法線が存在する場合には、行列の数がこの能力フラグで示されている数の半分になります。MaxVertexBlendMatrixIndex に 0 が設定されている場合、このドライバーはインデックス付き頂点ブレンディングをサポートしていません。この値が 0 でない場合、有効なインデックスは 0 から MaxVertexBlendMatrixIndex までの値になります。 MaxVertexBlendMatrixIndex が 0 の場合は、このドライバーがインデックス付き行列をサポートしていないことを示します。 ソフトウェア頂点処理が採用されている場合、法線ブレンディングの有無にかかわらず、インデックス付き頂点のブレンディングに 256 個の行列を使用できます。 一部の物理デバイスの場合、IDirect3D9::CreateDevice に引き渡されるパラメーターによって、この能力が Direct3D デバイスごとに異なることがあります。

  • MaxPointSize
    ポイント プリミティブの最大サイズです。1.0f に設定されている場合、このデバイスではポイント サイズを制御できません。この値の範囲は 1.0f 以上です。

  • MaxPrimitiveCount
    1 回の IDirect3DDevice9::DrawPrimitive 呼び出しで描画可能な最大プリミティブ数です。これには 2 つのケースがあります。

    • MaxPrimitiveCount が 0xffff に等しくない場合、各描画呼び出しで、最大 MaxPrimitiveCount 個のプリミティブを描画できます。
    • ただし、MaxPrimitiveCount が 0xffff に等しい場合でも、最大 MaxPrimitiveCount 個のプリミティブを描画できますが、使用できるのも MaxPrimitiveCount 個の一意な頂点だけです (各プリミティブでは 3 つの異なる頂点を使用できるため)。
  • MaxVertexIndex
    ハードウェア頂点処理で使用可能なインデックスの最大サイズです。32 ビット インデックス バッファーを作成できます。ただし、この値が 0x0000FFFF よりも大きくない場合は、インデックス バッファーを使ったレンダリングができません。

  • MaxStreams
    IDirect3DDevice9::SetStreamSource の同時データ ストリームの最大数です。有効な範囲は 1 ~ 16 です。この値が 0 の場合、ドライバーは Direct3D 9 ドライバーではありません。

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

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

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

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

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

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

  • MasterAdapterOrdinal
    この数値は、この従属デバイスのマスター デバイスを示します。この数値は、アダプター値と同じ空間から取得されます。 マルチヘッド サポートの場合、1 つのヘッドがマスター ヘッドとして表され、同一カード上の他のすべてのヘッドは従属ヘッドとして表されます。1 つのシステム内にマルチヘッド アダプターが複数存在する場合、1 つのマルチヘッド アダプターのマスターおよびその従属は 1 つのグループと見なされます。

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

  • NumberOfAdaptersInGroup
    このアダプター グループ (マスターの場合のみ) 内のアダプターの数。従来のアダプターの場合は、1 になります。マルチヘッド カードのマスター アダプターの場合は、1 より大きな値になります。マルチヘッド カードの従属アダプターの場合は、0 になります。各カードについて、マスターは最大 1 つしか持てませんが、従属は多数持つことができます。

  • 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 extended の能力をサポートしています。「D3DVSHADERCAPS2_0」を参照してください。

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

  • VertexTextureFilterCaps
    デバイスは、頂点シェーダーのテクスチャー フィルタリング能力をサポートしています。「D3DPTFILTERCAPS」を参照してください。

  • MaxVShaderInstructionsExecuted
    フロー制御の使用時に実行できる頂点シェーダー命令の最大数です。プログラミングが可能な命令の最大数は、MaxVertexShader30InstructionSlots です。

  • MaxPShaderInstructionsExecuted
    フロー制御の使用時に実行できるピクセル シェーダー命令の最大数です。プログラミングが可能な命令の最大数は、MaxPixelShader30InstructionSlots です。

  • MaxVertexShader30InstructionSlots
    サポートされる頂点シェーダー命令スロットの最大数です。設定できる最大数は 32768 です。512 以上の命令スロットを使用するには、vs_3_0 をサポートするデバイスが必要です。

  • MaxPixelShader30InstructionSlots
    サポートされるピクセル シェーダー命令スロットの最大数です。設定できる最大数は 32768 です。512 以上の命令スロットを使用するには、ps_3_0 をサポートするデバイスが必要です。

  • Reserved2
    予約済みです。

  • Reserved3
    予約済みです。

解説 

MaxTextureBlendStages メンバーと MaxSimultaneousTextures メンバーは同じように見えますが、異なる情報を保持しています。MaxTextureBlendStages メンバーは、現在のデバイスでサポートされるテクスチャー ブレンディング ステージの総数を保持し、MaxSimultaneousTextures メンバーは、IDirect3DDevice9::SetTexture メソッドを使ってそれらのステージにバインドできるテクスチャーの最大数を保持します。

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

一般に、シーンの中でテクスチャーを変更するとパフォーマンス上の問題が発生することがあります。現在の IDirect3DDevice9::BeginSceneIDirect3DDevice9::EndScene ブロックで使用されているテクスチャーが、どうしても排除が必要な場合以外には排除されないようにする必要があります。単一のシーンでテクスチャーを多用すると、予測できない結果になることがあります。これは、シーンで使用したテクスチャーを変更する際に使用可能なテクスチャー メモリーが不足すると発生します。このようなシステムでは、z バッファーの内容は EndScene で無効になります。アプリケーションは、BeginScene/EndScene ペア内の、このタイプのハードウェア上のバック バッファーに対し、IDirect3DDevice9::UpdateSurface を呼び出すべきではありません。また、D3DPRASTERCAPS_ZBUFFERLESSHSR 能力フラグが設定されている場合には、z バッファーにアクセスしないようにしてください。最後に、アプリケーションはバック バッファーまたは BeginScene/EndScene ペア内の z バッファーをロックするべきではありません。

以下のミップマップ テクスチャー関連のフラグは、Direct3D 9 ではサポートしていません。

  • D3DPTFILTERCAPS_LINEAR
  • D3DPTFILTERCAPS_LINEARMIPLINEAR
  • D3DPTFILTERCAPS_LINEARMIPNEAREST
  • D3DPTFILTERCAPS_MIPNEAREST
  • D3DPTFILTERCAPS_NEAREST

要件

ヘッダー: D3D9Types.h 宣言

関連項目

IDirect3D9::GetDeviceCaps, IDirect3DDevice9::GetDeviceCaps