Microsoft DirectX 8.0 (C++)

D3DCAPS8

Microsoft® Direct3D® オブジェクトが公開するハードウェアの能力を表す。

typedef struct _D3DCAPS8 {
    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, 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               MaxPixelShaderValue;
} D3DCAPS8;

メンバ

DeviceType
D3DDEVTYPE 列挙型のメンバ。この Direct3DDevice オブジェクトが作成された対象のデバイスのタイプ。
AdapterOrdinal
この Direct3DDevice オブジェクトが作成されたアダプタ。この序数は、この Direct3DDevice オブジェクトを作成した IDirect3D8 インターフェイスのメソッドに渡す場合にのみ有効である。IDirect3D8 インターフェイスは、常に、IDirect3DDevice8::GetDirect3D を呼び出すことで取得できる。
Caps
以下に、ドライバ固有の能力を示す。
D3DCAPS_READ_SCANLINE
ディスプレイ ハードウェアは、現在の走査線を返すことができる。
Caps2
以下に、ドライバ固有の能力を示す。
D3DCAPS2_CANCALIBRATEGAMMA
システムには自動的にガンマ ランプを調整できる口径測定器がインストールされているので、口径測定器がある全システムにおいて結果は同じである。新しいガンマ レベルを設定するときに口径測定器を起動するには、IDirect3DDevice8::SetGammaRamp メソッドを呼び出す際に D3DSGR_CALIBRATE フラグを使用する。ガンマ ランプのキャリブレーションを行うと処理オーバーヘッドが発生するので、頻繁に使用すべきではない。
D3DCAPS2_CANRENDERWINDOWED
ドライバは、ウィンドウ モードのレンダリングができる。
D3DCAPS2_FULLSCREENGAMMA
ドライバは、フルスクリーン モードでのダイナミック ガンマ ランプ調整をサポートしている。
D3DCAPS2_NO2DDURING3DSCENE
ドライバによって D3DCAPS2_NO2DDURING3DSCENE 能力が設定されている場合、IDirect3DDevice8::BeginSceneIDirect3DDevice8::EndScene の呼び出しの間では 2D 処理を実行できないことを意味する。

通常、この能力は、シーンをパーティション化し、シーン内の各パーティションをレンダリングするハードウェアによって設定される。パーティション化はドライバによって実行され、ハードウェアはイメージ パーティションのサイズに対応する小さな色および深度バッファを格納する。このタイプのレンダリング ハードウェアでは、通常、イメージの各部分がレンダリングされると、 カラー バッファ内のデータはビデオ メモリに書き込まれ、深度バッファの内容は破棄される。また、3D レンダリングは EndScene が検出されるまで開始されないことに注意すること。次に、シーンがリージョンごとに処理される。この場合、処理の順序は保証されない。たとえば、処理される最初のリージョン (通常はウィンドウの左上隅) が、フレームの最後の三角形を含んでいる場合がある。従来のグラフィックス システムの場合、各コマンドは送信された順に処理される。その点でこれまでのシステムと異なる。2D 処理は、処理のある特定の時点で行われることが想定されている。D3DCAPS2_NO2DDURING3DSCENE が設定されたシステムでは、処理の順序は保証されない。したがって、ディスプレイ アダプタは、3D レンダリングの際に発生する 2D 処理を破棄することがある。

一般的には、BeginSceneEndScene のペアの外側で 2D 処理を実行することを推奨する。2D 処理がBeginSceneEndScene のペアの間で実行される場合は、D3DCAPS2_NO2DDURING3DSCENE 能力をチェックする必要がある。この能力が設定されている場合、アプリケーションでは、BeginSceneEndScene の間にある 2D 処理は破棄されると考えなければならない。D3DCAPS2_NO2DDURING3DSCENE を設定するシステム用のアプリケーション作成の詳細については、「注意」を参照すること。

D3DCAPS2_RESERVED
予約済み。使用されない。
Caps3
以下に、ドライバ固有の能力を示す。
D3DCAPS3_RESERVED
予約済み。使用されない。
PresentationIntervals
利用可能なプレゼンテーション スワップ間隔を示す値のビット マスク。ウィンドウ モードの場合、この値は 0 でなければならない。それ以外の場合、この値は、D3DCAPS8PresentationIntervals メンバで列挙される値のいずれかでなければならない。
D3DPRESENT_INTERVAL_IMMEDIATE
ドライバは、直接プレゼンテーション スワップ間隔をサポートしている。
D3DPRESENT_INTERVAL_ONE
ドライバは、スクリーン リフレッシュごとにプレゼンテーション スワップ間隔をサポートしている。
D3DPRESENT_INTERVAL_TWO
ドライバは、2 回目のスクリーン リフレッシュごとにプレゼンテーション スワップ間隔をサポートしている。
D3DPRESENT_INTERVAL_THREE
ドライバは、3 回目のスクリーン リフレッシュごとにプレゼンテーション スワップ間隔をサポートしている。
D3DPRESENT_INTERVAL_FOUR
ドライバは、4 回目のスクリーン リフレッシュごとにプレゼンテーション スワップ間隔をサポートしている。
CursorCaps
カーソルに対して利用できるハードウェア サポートを示すビット マスク。
D3DCURSORCAPS_COLOR
ハードウェアは、フルカラー カーソルをサポートしている。具体的には、このフラグは、ドライバが高解像度モード (走査線が 400 以上) で、少なくともハードウェア カラー カーソルをサポートしていることを示す。
D3DCURSORCAPS_LOWRES
ハードウェアは、フルカラー カーソルをサポートしている。具体的には、このフラグは、ドライバが高解像度モードと低解像度モード (走査線が 400 未満) の両方で、ハードウェア カラー カーソルをサポートしていることを示す。

Direct3D for Microsoft DirectX® 8.0 では、アルファ ブレンディング カーソルの能力は定義されていない。

DevCaps
デバイスの能力を示すフラグ。
D3DDEVCAPS_CANBLTSYSTONONLOCAL
デバイスは、システムメモリ テクスチャから非ローカル ビデオメモリ テクスチャへのブリットをサポートする。
D3DDEVCAPS_CANRENDERAFTERFLIP
デバイスは、ページ フリップの後で、レンダリング コマンドをキューに入れることができる。このフラグはアプリケーションの動作を変えるものではない。単にデバイスが比較的高速であることを示すものである。
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
このプリミティブの総体的な能力。このメンバには、次の 1 つ以上のフラグを設定できる。
D3DPMISCCAPS_BLENDOP
デバイスは、D3DBLENDOP 列挙型で定義されているアルファ ブレンディング処理をサポートしている。
D3DPMISCCAPS_CLIPPLANESCALEDPOINTS
デバイスは、正確に、1.0 より大きいサイズのスケーリングされたポイントを、ユーザー定義クリップ面にクリップする。
D3DPMISCCAPS_CLIPTLVERTS
デバイスは、トランスフォーム後の頂点プリミティブをクリップする。
D3DPMISCCAPS_COLORWRITEENABLE
デバイスは、D3DRS_COLORWRITEENABLE ステートを使用して、レンダリング ターゲットのカラー バッファへのチャネルごとの書き込みをサポートする。
D3DPMISCCAPS_CULLCCW
ドライバは、D3DRS_CULLMODE ステートを使用して反時計回りのカリングをサポートする (これは三角形プリミティブにのみ適用される)。このフラグは、D3DCULL 列挙型の D3DCULL_CCW メンバに対応する。
D3DPMISCCAPS_CULLCW
ドライバは、D3DRS_CULLMODE ステートを使用して時計回りのカリングをサポートする(これは三角形プリミティブにのみ適用される)。このフラグは、D3DCULL 列挙型の D3DCULL_CW メンバに対応する。
D3DPMISCCAPS_CULLNONE
ドライバは、三角形カリングを実行しない。これは、D3DCULL 列挙型の D3DCULL_NONE メンバに対応する。
D3DPMISCCAPS_LINEPATTERNREP
ドライバは、D3DLINEPATTERN 構造体の wRepeatFactor メンバで 1 以外の値を処理できる (これは線描画プリミティブにのみ適用される)。
D3DPMISCCAPS_MASKZ
デバイスは、ピクセル処理における深度バッファの変更の有効/無効を切り替えることができる。
D3DPMISCCAPS_TSSARGTEMP
デバイスは、テンポラリ レジスタ用の D3DTA_TEMP をサポートする。
RasterCaps
ラスタ描画能力についての情報。このメンバには、次の 1 つ以上のフラグを設定できる。
D3DPRASTERCAPS_ANISOTROPY
デバイスは、異方性フィルタリングをサポートする。
D3DPRASTERCAPS_ANTIALIASEDGES
デバイスは、オブジェクトの輪郭線を凸状にするアンチエイリアス線を描画できる。詳細については、「D3DRS_EDGEANTIALIAS」を参照すること。
D3DPRASTERCAPS_COLORPERSPECTIVE
デバイスは、色のパースペクティブ補正を補間する。
D3DPRASTERCAPS_DITHER
デバイスは、ディザリングを使用して良質な色を再現できる。
D3DPRASTERCAPS_FOGRANGE
デバイスは、範囲ベースのフォグをサポートする。範囲ベースのフォグでは、シーンにおけるオブジェクトの深さ (z 座標) ではなく、ビューアからのオブジェクトの距離でフォグ エフェクトを計算する。
D3DPRASTERCAPS_FOGTABLE
デバイスは、ピクセルの深さを指すフォグ値を含む参照テーブルと照合して、フォグ値を算出する。
D3DPRASTERCAPS_FOGVERTEX
デバイスは、ライティング処理の際にフォグ値を計算し、ラスタ化の際にフォグ値を補間する。
D3DPRASTERCAPS_MIPMAPLODBIAS
デバイスは、詳細レベル (LOD) バイアス調整をサポートする。これらのバイアス調整により、ミップマップを普通よりもすっきりとまたはあまり鋭くなく見せることができる。ミップマップの LOD バイアスの詳細については、「D3DTSS_MIPMAPLODBIAS」を参照すること。
D3DPRASTERCAPS_PAT
ドライバは、照会されているプリミティブに対し、D3DRS_LINEPATTERN を使った線や塗りつぶしのパターン描画を実行できる。
D3DPRASTERCAPS_STRETCHBLTMULTISAMPLE
デバイスは、blt メソッドの拡大を実装することで、制限されたマルチサンプルのサポートを提供する。この能力が設定されている場合、シーンの途中で D3DRS_MULTISAMPLEANTIALIAS のオンとオフを切り替えることはできない。このフラグが設定されている場合、マルチサンプル マスキングは実行できない。
D3DPRASTERCAPS_WBUFFER
デバイスは、w を使用する深度バッファリングをサポートする。
D3DPRASTERCAPS_WFOG
デバイスは、w ベースのフォグをサポートする。W ベースのフォグは、パースペクティブ射影行列が指定された場合に使用されるが、アフィン射影では現在でも Z ベースのフォグが使用される。[3][4] 要素にゼロ以外の値がある射影行列が、パースペクティブ射影行列と見なされる。
D3DPRASTERCAPS_ZBIAS
デバイスは、z バイアス値をサポートする。これらはポリゴンに割り当てられた整数値であり、物理的に同一平面上にあるポリゴンを別のものに見せることができる。詳細については、「D3DRS_ZBIAS」を参照すること。
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_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-Rd, 1-Gd, 1-Bd, 1-Ad)。
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
デバイスは、RGB カラー モデルのグーロー シェーディングにおいてスペキュラ ハイライトをサポートできる。
TextureCaps
その他のテクスチャ マッピング能力。このメンバには、次の 1 つ以上のフラグを設定できる。
D3DPTEXTURECAPS_ALPHA
テクスチャ ピクセルにおいてアルファがサポートされる。
D3DPTEXTURECAPS_ALPHAPALETTE
デバイスは、テクスチャ パレットからアルファを描画できる。
D3DPTEXTURECAPS_CUBEMAP
キューブ テクスチャをサポートする。
D3DPTEXTURECAPS_CUBEMAP_POW2
デバイスでは、キューブ テクスチャ マップのディメンジョンは 2 の累乗で指定されなければならない。
D3DPTEXTURECAPS_MIPCUBEMAP
デバイスは、ミップマップ化キューブ テクスチャをサポートする。
D3DPTEXTURECAPS_MIPMAP
デバイスは、ミップマップ化テクスチャをサポートする。
D3DPTEXTURECAPS_MIPVOLUMEMAP
デバイスは、ミップマップ化ボリューム テクスチャをサポートする。
D3DPTEXTURECAPS_NONPOW2CONDITIONAL
場合によっては、ディメンジョンが 2 の累乗でないテクスチャの使用をサポートする。以下の条件をすべて満たす場合、この能力を公開するデバイスではこのようなテクスチャを使用できる。
D3DPTEXTURECAPS_PERSPECTIVE
パースペクティブ補正のテクスチャリングがサポートされる。
D3DPTEXTURECAPS_POW2
すべてのテクスチャの幅と高さは、2 の累乗で指定されていなければならない。この条件は、キューブ テクスチャまたはボリューム テクスチャには適用されない。
D3DPTEXTURECAPS_PROJECTED
D3DTTFF_PROJECTED テクスチャ トランスフォーム フラグをサポートする。この能力が適用されている場合、デバイスはトランスフォーム済みテクスチャ座標を最後のテクスチャ座標で除算する。この能力が設定されている場合、ピクセル単位に射影除算が行われる。この能力が設定されていない場合に、射影除算が必要なときは、Direct3D ランタイムによって頂点ごとに行われる。
D3DPTEXTURECAPS_SQUAREONLY
テクスチャは、すべて正方形でなければならない。
D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE
テクスチャ インデックスは、補間実行前には、テクスチャ サイズに合わせてスケーリングされない。
D3DPTEXTURECAPS_VOLUMEMAP
デバイスは、ボリューム テクスチャをサポートする。
D3DPTEXTURECAPS_VOLUMEMAP_POW2
デバイスでは、ボリューム テクスチャ マップのディメンジョンは 2 の累乗で指定されなければならない。
TextureFilterCaps
Direct3DTexture オブジェクトのテクスチャ フィルタリング能力。ステージ単位のフィルタリング能力は、IDirect3DDevice8 インターフェイスでマルチテクスチャ ブレンディングを実行する際にテクスチャ ステージでサポートされるフィルタリング モードを示している。このメンバは、次に示すステージ単位のテクスチャ フィルタリング フラグを任意に組み合わせたものである。
D3DPTFILTERCAPS_MAGFAFLATCUBIC
デバイスは、ステージごとに、テクスチャを拡大する平面 3 次フィルタリングをサポートする。平面 3 次拡大フィルタは、D3DTEXTUREFILTERTYPE 列挙型の D3DTEXF_FLATCUBIC メンバで表される。
D3DPTFILTERCAPS_MAGFANISOTROPIC
デバイスは、ステージごとに、テクスチャを拡大する異方性フィルタリングをサポートする。異方性拡大フィルタは、D3DTEXTUREFILTERTYPE 列挙型の D3DTEXF_ANISOTROPIC メンバで表される。
D3DPTFILTERCAPS_MAGFGAUSSIANCUBIC
デバイスは、ステージごとに、テクスチャを拡大するガウス 3 次フィルタリングをサポートする。ガウス 3 次拡大フィルタは、D3DTEXTUREFILTERTYPE 列挙型の D3DTEXF_GAUSSIANCUBIC メンバで表される。
D3DPTFILTERCAPS_MAGFLINEAR
デバイスは、ステージごとに、テクスチャを拡大するバイリニア補間フィルタリングをサポートする。バイリニア補間拡大フィルタは、D3DTEXTUREFILTERTYPE 列挙型の D3DTEXF_LINEAR メンバで表される。
D3DPTFILTERCAPS_MAGFPOINT
デバイスは、ステージごとに、テクスチャを拡大するポイントサンプル フィルタリングをサポートする。ポイントサンプル拡大フィルタは、D3DTEXTUREFILTERTYPE 列挙型の D3DTEXF_POINT メンバで表される。
D3DPTFILTERCAPS_MINFANISOTROPIC
デバイスは、ステージごとに、テクスチャを縮小する異方性フィルタリングをサポートする。異方性縮小フィルタは、D3DTEXTUREFILTERTYPE 列挙型の D3DTEXF_ANISOTROPIC メンバで表される。
D3DPTFILTERCAPS_MINFLINEAR
デバイスは、ステージごとに、テクスチャを縮小するバイリニア補間フィルタリングをサポートする。バイリニア縮小フィルタは、D3DTEXTUREFILTERTYPE 列挙型の D3DTEXF_LINEAR メンバで表される。
D3DPTFILTERCAPS_MINFPOINT
デバイスは、ステージごとに、テクスチャを縮小するポイントサンプル フィルタリングをサポートする。ポイントサンプル縮小フィルタは、D3DTEXTUREFILTERTYPE 列挙型の D3DTEXF_POINT メンバで表される。
D3DPTFILTERCAPS_MIPFLINEAR
デバイスは、ステージごとに、ミップマップのためのトライリニア補間フィルタリングをサポートする。トライリニア補間ミップマップ フィルタは、D3DTEXTUREFILTERTYPE 列挙型の D3DTEXF_LINEAR メンバで表される。
D3DPTFILTERCAPS_MIPFPOINT
デバイスは、ステージ単位に、ミップマップを行うポイントサンプル フィルタリングをサポートする。ポイントサンプル ミップマップ フィルタは、D3DTEXTUREFILTERTYPE 列挙型の D3DTEXF_POINT メンバで表される。
CubeTextureFilterCaps
Direct3DCubeTexture オブジェクトのテクスチャ フィルタリング能力。ステージ単位のフィルタリング能力は、IDirect3DDevice8 インターフェイスでマルチテクスチャ ブレンディングを実行する際にテクスチャ ステージでサポートされるフィルタリング モードを示している。このメンバは、TextureFilterCaps 用に定義されたステージ単位のテクスチャ フィルタリング フラグを任意に組み合わせたものである。
VolumeTextureFilterCaps
Direct3DVolumeTexture オブジェクトのテクスチャ フィルタリング能力。ステージ単位のフィルタリング能力は、IDirect3DDevice8 インターフェイスでマルチテクスチャ ブレンディングを実行する際にテクスチャ ステージでサポートされるフィルタリング モードを示している。このメンバは、TextureFilterCaps 用に定義されたステージ単位のテクスチャ フィルタリング フラグを任意に組み合わせたものである。
TextureAddressCaps
Direct3DTexture オブジェクトのテクスチャ アドレッシング能力。このメンバには、次の 1 つ以上のフラグを設定できる。
D3DPTADDRESSCAPS_BORDER
デバイスは、D3DTSS_BORDERCOLOR テクスチャ ステージ ステートで指定される境界色を、[0.0, 1.0] の範囲外の座標に設定できる。
D3DPTADDRESSCAPS_CLAMP
デバイスは、テクスチャをアドレスに固定できる。
D3DPTADDRESSCAPS_INDEPENDENTUV
デバイスは、テクスチャの U 座標と V 座標のテクスチャ アドレッシング モードを分離できる。この能力は、D3DTSS_ADDRESSU および D3DTSS_ADDRESSV レンダリング ステート値に対応する。
D3DPTADDRESSCAPS_MIRROR
デバイスは、テクスチャをアドレスに反映させることができる。
D3DPTADDRESSCAPS_MIRRORONCE
デバイスは、テクスチャ座標の絶対値を取得し (0 を中心にミラーリングされ)、最大値に制限できる。
D3DPTADDRESSCAPS_WRAP
デバイスは、テクスチャの張り付けが可能である。
VolumeTextureAddressCaps
Direct3DVolumeTexture オブジェクトのテクスチャ アドレッシング能力。このメンバには、TextureAddressCaps メンバ用に定義された 1 つ以上のフラグを設定できる。
LineCaps
線描画プリミティブの能力を定義する。
D3DLINECAPS_ALPHACMP
アルファ テスト比較をサポートする。
D3DLINECAPS_BLEND
ソース ブレンディングをサポートする。
D3DLINECAPS_FOG
フォグをサポートする。
D3DLINECAPS_TEXTURE
テクスチャ マッピングをサポートする。
D3DLINECAPS_ZTEST
Z バッファ比較をサポートする。
MaxTextureWidth および MaxTextureHeight
このデバイスの最大のテクスチャの幅と高さ。
MaxVolumeExtent
最大ボリューム範囲。
MaxTextureRepeat
正規化した後のテクスチャ インデックスの整数ビットの全範囲。D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE ビットが設定されている場合、デバイスは、テクスチャ アドレッシング モードが適用されるまでテクスチャ サイズによるスケーリングを行わない。このビットが設定されていない場合は、デバイスはテクスチャ サイズ (最大詳細レベル) によるテクスチャ インデックスのスケーリングを実行してから補間を行う。

D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE が設定されている場合、テクスチャをラップできる回数は MaxTextureRepeat である。D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE が設定されていない場合、テクスチャをラップできる回数はMaxTextureRepeat × テクスチャ サイズである。たとえば、デバイスが D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE を設定し、MaxTextureRepeat が 32k で、最大テクスチャ サイズが 4k であるとする。このデバイスは、27 の整数ビット (および 32 ビット符号付き整数の場合は 5 つの小数ビット) を使用するので、4k のテクスチャを 32k 回ラップするのに十分である (テクスチャ座標が、正と負のテクスチャ座標の範囲に等しく広がっていると仮定した場合)。一方、デバイスが D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE を設定できない場合は、MaxTextureRepeat を 2**27 に設定する。

MaxTextureAspectRatio
ハードウェアによってサポートされる、テクスチャの最大アスペクト比。通常は 2 の累乗。
MaxAnisotropy
D3DTSS_MAXANISOTROPY テクスチャステージ ステートの最大有効値。
MaxVertexW
デバイスがサポートする最大 W ベース深度値。
GuardBandLeft、GuardBandTop、GuardBandRight、および GuardBandBottom
ガードバンド クリッピング領域の画面空間座標。この矩形内にあり、かつビューポート矩形の外側にある座標は、自動的にクリッピングされる。
ExtentsAdjust
アンチエイリアス カーネルが収まるように矩形の外辺を調節するためのピクセル数。
StencilCaps
サポートされているステンシル バッファ処理を指定するフラグ。ステンシル処理は、3 種類のステンシル バッファ処理レンダリング ステート (D3DRS_STENCILFAIL、D3DRS_STENCILPASS、D3DRS_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 処理をサポートする。

詳細については、「D3DSTENCILOP 列挙型」を参照すること。

FVFCaps
柔軟な頂点フォーマットの能力。
D3DFVFCAPS_DONOTSTRIPELEMENTS
頂点要素は削除しない方がよい。つまり、頂点フォーマットが現在のレンダリング ステートで使用されない要素を含んでいても、頂点を再度生成する必要はない。この能力フラグが指定されていない場合、頂点フォーマットから不要な要素を削除すると、パフォーマンスが向上する。
D3DFVFCAPS_PSIZE
D3DFVFCAPS_PSIZE がない場合、デバイスはトランスフォーム前の頂点について D3DFVF_PSIZE をサポートしていないことを示す。この場合、基本ポイント サイズは常に D3DRS_POINTSIZE から利用される。この能力は、ソフトウェアの固定機能頂点処理にのみ適用される。ソフトウェア頂点処理を行う場合、D3DFVF_PSIZE は常にサポートされる。

頂点シェーダによって書き込まれる出力ポイント サイズは常にサポートされる。頂点シェーダの場合、入力はすべて出力ポイント サイズによる。

トランスフォーム後の頂点については、D3DFVF_PSIZE は常にサポートされる。

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
サポートされるテクスチャ ブレンディング ステージの最大数。この値は、使用可能なブレンダの数である。DirectX 8.0 のプログラム可能ピクセル パイプラインでは、これは、この特定の実装のピクセル シェーダによってサポートされている命令数に対応する。
MaxSimultaneousTextures
テクスチャ ブレンディング ステージに同時にバインドできるテクスチャの最大数。この値は、シングル パスで使用できるテクスチャの数である。DirectX 8.0 のプログラム可能ピクセル シェーダでは、これは特定のハードウェアのピクセル シェーダによってサポートされるテクスチャ レジスタの数、および使用できるテクスチャ宣言命令の数を示す。
VertexProcessingCaps
頂点の処理能力。任意の物理デバイスの場合、この能力は、IDirect3D8::CreateDevice に指定されたパラメータに応じて、Direct3D Device Object 間で異なることがある。
D3DVTXPCAPS_DIRECTIONALLIGHTS
デバイスはディレクショナル ライトをサポートする。
D3DVTXPCAPS_LOCALVIEWER
デバイスはローカル ビューアをサポートする。
D3DVTXPCAPS_MATERIALSOURCE7
デバイスは選択可能な頂点カラー ソースをサポートする。
D3DVTXPCAPS_POSITIONALLIGHTS
デバイスは局部ライト (ポイント ライト、スポット ライトなど) をサポートする。
D3DVTXPCAPS_TEXGEN
デバイスはテクスチャ座標を生成できる。
D3DVTXPCAPS_TWEENING
デバイスは頂点トゥイーニングをサポートする。
D3DVTXPCAPS_NO_VSDT_UBYTE4
デバイスは、D3DVSDT_UBYTE4 頂点宣言タイプをサポートしない。
MaxActiveLights
同時にアクティブにできるライトの最大数。任意の物理デバイスの場合、この能力は、IDirect3D8::CreateDevice に指定されたパラメータに応じて、Direct3D Device Object 間で異なることがある。
MaxUserClipPlanes
サポートされるユーザー定義クリップ面の最大数。このメンバは 0 から D3DMAXUSERCLIPPLANES までの範囲になる。任意の物理デバイスの場合、この能力は、IDirect3D8::CreateDevice に指定されたパラメータに応じて、Direct3D Device Object 間で異なることがある。
MaxVertexBlendMatrices
複数の行列による頂点ブレンディングを実行する際にデバイスが適用できる行列の最大数。任意の物理デバイスの場合、この能力は、IDirect3D8::CreateDevice に指定されたパラメータに応じて、Direct3D Device Object 間で異なることがある。
MaxVertexBlendMatrixIndex
頂点単位のインデックスを使ってインデックス付けできる最大の行列インデックスを示す DWORD 値。行列の数は MaxVertexBlendMatrixIndex + 1 で、これは行列パレットのサイズである。ライティングにブレンディングする必要のある頂点データに法線が存在する場合、行列の数は、この能力フラグで示されている数の半分になる。MaxVertexBlendMatrixIndex に 0 が設定されている場合、ドライバはインデックス付き頂点ブレンディングをサポートしていない。この値が 0 でない場合、インデックスの有効な範囲は 0 から MaxVertexBlendIndexedMatrices までである。

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

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

任意の物理デバイスの場合、この能力は、IDirect3D8::CreateDevice に指定されたパラメータに応じて、Direct3D Device Object 間で異なることがある。

MaxPointSize
ポイント プリミティブの最大サイズ。1.0f に設定されている場合、デバイスはポイント サイズの制御をサポートしていない。範囲は 1.0f 以上である。
MaxPrimitiveCount
DrawPrimitive の各呼び出しの最大プリミティブ数。
MaxVertexIndex
ハードウェア頂点処理に対してサポートされるインデックスの最大サイズ。D3DFMT_INDEX32 を指定して 32 ビット インデックス バッファを作成できる。ただし、この値が 0x0000FFFF よりも大きくない場合は、インデックス バッファを使ってレンダリングできない。
MaxStreams
IDirect3DDevice8::SetStreamSource に対する同時データ ストリームの最大数。有効範囲は 1 〜 16 である。この値が 0 の場合、DirectX 8.0 ドライバではないことに注意する。
MaxStreamStride
IDirect3DDevice8::SetStreamSource の最大ストライド。
VertexShaderVersion
頂点シェーダのバージョン。デバイスがサポートする頂点シェーダのレベルを示す。IDirect3DDevice8::CreateVertexShader の呼び出しは、このメンバの値以下のバージョン番号の頂点シェーダを指定した場合にのみ成功する。CreateVertexShader に対するシェーダ レベルの指定は、頂点シェーダ トークン ストリームの第 1 トークンで行われる。

主なバージョン番号は、セカンド バイトにエンコードされる。下位バイトには、サブバージョンの番号が含まれる。

MaxVertexShaderConst
頂点シェーダの定数レジスタの数。
PixelShaderVersion
ピクセル シェーダのバージョン。デバイスがサポートするピクセル シェーダのレベルを示す。IDirect3DDevice8::CreatePixelShader の呼び出しは、このメンバの値以下のバージョン番号のピクセル シェーダを指定した場合にのみ成功する。

主なバージョン番号は、セカンド バイトにエンコードされる。下位バイトには、サブバージョンの番号が含まれる。

MaxPixelShaderValue
ピクセル シェーダの算術コンポーネントの最大値。この値は、ピクセル カラー ブレンディング処理でサポートされる値の内部範囲を示す。レポートされる範囲内では、データが変更 (制限) されずにピクセル処理に渡される必要がある。通常、このメンバの値は絶対値である。たとえば、1.0 は -1.0 〜 1 の範囲を示し、8.0 は -8.0 〜 8.0 の範囲を示す。この値が 0.0 の場合、符号付きの範囲がサポートされていないことを示し、範囲は DirectX 6.0 および 7.0 と同様に 0 〜 1.0 になる。

注意

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

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

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

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

動作環境

  ヘッダー : D3d8caps.h で宣言。

参照

IDirect3D8::GetDeviceCapsIDirect3DDevice8::GetDeviceCaps