次の方法で共有


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
    指定のマルチサンプリング タイプで利用可能な品質ストップの数。値を返す必要がない場合は、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 を返します。

要件

ヘッダー: D3D9.h 宣言