デバイスは実際のビデオカードがサポートする機能を調べた上で、作成する必要があります。
メソッド | 説明 |
---|---|
CheckDepthStencilMatch | 深度ステンシル フォーマットが、特定のディスプレイモードでのレンダリング ターゲット フォーマットと互換性があるかどうか調べる。 |
CheckDeviceFormat |
サーフェイスのフォーマットが、指定したリソース タイプとして使用できるかどうか調べる。 またこのアダプタを使うデバイスでテクスチャ、深度ステンシル バッファ、レンダリング ターゲットのいずれか、またはこれら 3つの組み合わせとして使用できるかどうかを調べる。 |
CheckDeviceFormatConversion | デバイスがディスプレイ フォーマットの変換をサポートするかどうかをテストする。 |
CheckDeviceMultiSampleType | このデバイスでマルチサンプリング テクニックを使用できるかどうかを調べる。 |
CheckDeviceType | アダプタでハードウェア アクセラレーション デバイス タイプが使用可能かどうかを検証する。 |
GetAdapterMonitor | オブジェクトに関連付けられているモニタのハンドルを返す。 |
GetDeviceCaps | デバイスについてのデバイス固有の情報を取得する。 |
各機能のサポート状況は、DeviceCapsのプロパティを調べることで判明します。
DeviceCapsのプロパティで得られる情報は、必ずしも正確ではありません。構成システムのサンプル | MSDN
プロパティ | 内容 |
---|---|
CanDrawSystemToNonLocal | システム メモリ テクスチャから、非ローカル ビデオ メモリ テクスチャへのブリットをサポートする |
CanRenderAfterFlip | ページ フリップの後で、レンダリング コマンドをキューに入れることができる |
CanStretchRectangleFromTextures | ソースとしてテクスチャを使う StretchRectangleをサポートする |
SupportsAdaptiveTessellateNPatch | Nパッチの適応型テセレーションをサポートする |
SupportsAdaptiveTessellateRtPatch | RTパッチの適応型テセレーションをサポートする |
SupportsDMapNPatch | Nパッチのディスプレースメント マップをサポートする |
SupportsDrawPrimitives2 | DrawPrimitives2 をサポートする |
SupportsDrawPrimitives2Ex | 拡張DrawPrimitives2 をサポートする |
SupportsDrawPrimitivesTransformedVertex | DrawPrimitive対応のハードウェア アブストラクション レイヤ (HAL) をサポートする |
SupportsExecuteSystemMemory | システム メモリにある実行バッファを使うことができる |
SupportsExecuteVideoMemory | ビデオ メモリにある実行バッファを使うことができる |
SupportsHardwareRasterization | シーンのラスタ化用のハードウェア アクセラレーションがある |
SupportsHardwareTransformAndLight | ハードウェアでトランスフォーム&ライティングをサポートできる |
SupportsNPatches | Nパッチをサポートする |
SupportsPreSampledDMapNPatch | Nパッチの事前にサンプリングされたディスプレースメント マップをサポートする |
SupportsPureDevice | ハードウェアでラスタ化、トランスフォーム、ライティング、およびシェーディングをサポートする |
SupportsQuinticRtPatches | 5次ベジェ曲線および Bスプラインをサポートする |
SupportsRtPatches | 矩形パッチおよび三角形パッチをサポートする |
SupportsRtPatchHandleZero | ハードウェア アーキテクチャで情報をキャッシュする必要がなく、キャッシュされていないパッチ (ハンドル0) を、キャッシュされたパッチと同様、効率的に描画できる |
SupportsSeparateTextureMemories | 独立したメモリ プールからテクスチャ処理を行える |
SupportsStreamOffset | ストリーム オフセットをサポートする |
SupportsTextureNonLocalVideoMemory | 非ローカル ビデオ メモリからテクスチャを取得できる |
SupportsTextureSystemMemory | システム メモリからテクスチャを取得できる |
SupportsTextureVideoMemory | デバイス メモリからテクスチャを取得できる |
SupportsTransformedVertexSystemMemory | トランスフォーム済みライティング済みの頂点用に、システム メモリのバッファを使うことができる |
SupportsTransformedVertexVideoMemory | トランスフォーム済みラィング済みの頂点用に、ビデオ メモリのバッファを使うことができる |
たとえばハードウェアによる頂点処理のサポート モードを決定するには、次のようにします。
using Microsoft.DirectX.Direct3D; // デバイス固有の情報を取得する Caps caps = Manager.GetDeviceCaps( Manager.Adapters.Default.Adapter, // デフォルトのアダプタのインデックス DeviceType.Hardware // ハードウェア デバイス ); CreateFlags flags; if( caps.DeviceCaps.SupportsHardwareTransformAndLight ) { // ハードウェアによる頂点処理のサポートあり flags = CreateFlags.HardwareVertexProcessing; } else { // ハードウェアによる頂点処理のサポートあり flags = CreateFlags.SoftwareVertexProcessing; }
DirectXのSDKに付属するDirectX Caps Viewerを使用することでも、ビデオカードの能力を確認できます。DirectX Caps Viewer | MSDN
このツールはスタートメニューの【すべてのプログラム → Microsoft DirectX SDK → DirectX Utilities → DirectX Caps Viewer】から起動できます。