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列舉型別的成員,識別要測試的多取樣技術。
[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 |