IDirect3D9::CheckDeviceMultiSampleType
このデバイスでマルチサンプリング テクニックを利用できるかどうかを調べます。
HRESULT
CheckDeviceMultiSampleType(
UINT Adapter,
D3DDEVTYPE DeviceType,
D3DFORMAT SurfaceFormat,
BOOL Windowed,
D3DMULTISAMPLE_TYPE MultiSampleType,
DWORD* pQualityLevels
);
パラメータ
- Adapter
クエリするディスプレイ アダプターを示す序数。D3DADAPTER_DEFAULT は常にプライマリ ディスプレイ アダプターです。システムのディスプレイ アダプターの数以上の値が指定された場合、このメソッドは FALSE を返します。「解説」を参照してください。 - DeviceType
D3DDEVTYPE 列挙型のメンバー。デバイス タイプを指定します。 - SurfaceFormat
D3DFORMAT 列挙型のメンバー。マルチサンプリングするサーフェスのフォーマットを指定します。詳細については、「解説」を参照してください。 - Windowed
BOOL 値。ウィンドウ マルチサンプリングについてクエリするときは TRUE を指定し、フルスクリーン マルチサンプリングについてクエリするときは FALSE を指定します。 - MultiSampleType
D3DMULTISAMPLE_TYPE 列挙型のメンバー。テストするマルチサンプリング テクニックを指定します。 - pQualityLevels
pQualityLevels は、指定のサンプリング タイプで利用できる、デバイス固有のサンプリング バリエーションの数を返します。たとえば、値 3 が返された場合、指定のサンプル数を使用したリソースの作成では、品質レベルとして 0、1、および 2 を使用できます。これらの品質レベルの意味はデバイスの製造元が定義するものであり、D3D を使用して知ることはできません。たとえば、あるデバイスでは、固定サンプル数の複数の品質レベルが、サンプルの配置場所の空間レイアウト、または各種の解決手法を表していることがあります。品質レベルを返す必要がない場合は、NULL を指定できます。
戻り値
デバイスが指定のマルチサンプリング メソッドを実行できる場合、このメソッドは D3D_OK を返します。Adapter または MultiSampleType パラメーターが無効な場合は、D3DERR_INVALIDCALL が返されます。クエリされたマルチサンプリング テクニックがこのデバイスでサポートされていない場合、このメソッドは D3DERR_NOTAVAILABLE を返します。このアダプターに DeviceType が適用されない場合は、D3DERR_INVALIDDEVICE が返されます。
解説
このメソッドは、レンダリングターゲット サーフェスおよび深度ステンシル サーフェスを両方共に使用するように作成されています。この 2 つのサーフェスを共に使用するときには、両方のサーフェスをマルチサンプリングする必要があるからです。
次のコードは、IDirect3D9::CheckDeviceMultiSampleType を使って、デバイスが特定のマルチサンプリング方式をサポートしていることを確認する方法を示しています。
if( SUCCEEDED(pD3D->CheckDeviceMultiSampleType( pCaps->AdapterOrdinal, pCaps->DeviceType, BackBufferFormat, FALSE, D3DMULTISAMPLE_3_SAMPLES, NULL ) ) && SUCCEEDED(pD3D->CheckDeviceMultiSampleType( pCaps->AdapterOrdinal, pCaps->DeviceType, DepthBufferFormat, FALSE, D3DMULTISAMPLE_3_SAMPLES, NULL ) ) ) return S_OK;
上のコードは、デバイスがフルスクリーン D3DMULTISAMPLE_3_SAMPLES マルチサンプリング方式およびサーフェス フォーマットをサポートしている場合、S_OK を返します。
マルチサンプリング タイプおよび品質レベルの操作と設定の詳細については、「D3DMULTISAMPLE_TYPE」の「解説」を参照してください。
要件
ヘッダー: D3D9.h 宣言
ライブラリ: D3D9.lib 内容