Share via


IDirect3D9::CheckDeviceMultiSampleType 方法 (d3d9.h)

判斷此裝置上是否提供多重取樣技術。

語法

HRESULT CheckDeviceMultiSampleType(
  [in]  UINT                Adapter,
  [in]  D3DDEVTYPE          DeviceType,
  [in]  D3DFORMAT           SurfaceFormat,
  [in]  BOOL                Windowed,
  [in]  D3DMULTISAMPLE_TYPE MultiSampleType,
  [out] DWORD               *pQualityLevels
);

參數

[in] Adapter

類型: UINT

序數表示要查詢的顯示配接器。 D3DADAPTER_DEFAULT一律是主要顯示介面卡。 當這個值等於或超過系統中的顯示介面卡數目時,這個方法會傳回 FALSE 。 請參閱<備註>。

[in] DeviceType

類型: D3DDEVTYPE

識別裝置類型之 D3DDEVTYPE 列舉型別的成員。

[in] SurfaceFormat

類型: D3DFORMAT

D3DFORMAT列舉型別的成員,指定要多重取樣之表面的格式。 如需詳細資訊,請參閱<備註>。

[in] Windowed

類型: BOOL

bool 值。 指定 TRUE 以查詢視窗式多重取樣,並指定 FALSE 來查詢全螢幕多重取樣。

[in] MultiSampleType

類型: D3DMULTISAMPLE_TYPE

D3DMULTISAMPLE_TYPE列舉型別的成員,識別要測試的多取樣技術。

[out] pQualityLevels

類型: DWORD*

pQualityLevels 會傳回指定樣本類型可用的裝置特定取樣變化數目。 例如,如果傳回的值是 3,則在建立具有指定樣本計數的資源時,可以使用品質等級 0、1 和 2。 這些品質等級的意義是由裝置製造商所定義,無法透過 D3D 查詢。 例如,對於固定樣本計數的特定裝置不同品質層級,可能會參考範例位置的不同空間配置,或解析的不同方法。 如果不需要傳回品質等級,這可以是 Null

傳回值

類型: HRESULT

如果裝置可以執行指定的多重取樣方法,這個方法會傳回D3D_OK。 如果 Adapter 或 MultiSampleType 參數無效,則會傳回D3DERR_INVALIDCALL。 如果此裝置不支援查詢的多重取樣技術,這個方法會傳回D3DERR_NOTAVAILABLE。 如果 DeviceType 不適用於此配接器,則會傳回D3DERR_INVALIDDEVICE。

備註

此方法適用于轉譯目標和深度樣板表面,因為如果您想要同時使用兩個表面,則必須建立兩個表面多重取樣。

下列程式碼片段示範如何使用 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 中的備註。

需求

   
目標平台 Windows
標頭 d3d9.h (包含 D3D9.h)
程式庫 D3D9.lib

另請參閱

IDirect3D9