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::BeginScene と IDirect3DDevice9::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_STENCILFAIL、D3DRS_STENCILPASS、D3DRS_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 で無効になる。アプリケーションは、このタイプのハードウェア上では、BeginScene と EndScene の間で、バック バッファへの、またはバック バッファからの IDirect3DDevice9::UpdateSurface を呼び出すべきではない。さらに、D3DPRASTERCAPS_ZBUFFERLESSHSR
能力フラグが設定されている場合、アプリケーションは Z バッファにアクセスすべきではない。最後に、アプリケーションは BeginScene と EndScene のペアの間で、バック バッファまたは Z バッファをロックすべきではない。
次に示すミップマップ テクスチャ関連のフラグは、DirectX 9.0 ではサポートされていない。
- D3DPTFILTERCAPS_NEAREST
- D3DPTFILTERCAPS_LINEAR
- D3DPTFILTERCAPS_MIPNEAREST
- D3DPTFILTERCAPS_LINEARMIPNEAREST
- D3DPTFILTERCAPS_LINEARMIPLINEAR
構造体の情報
ヘッダー | d3d9caps.h |
最低限のオペレーティング システム | Windows 98 |
参照