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;
如果设备支持采用 surface 格式的全屏D3DMULTISAMPLE_3_SAMPLES多重采样方法,则上述代码将返回S_OK。
有关使用和设置多样本类型和质量级别的其他信息,请参阅 D3DMULTISAMPLE_TYPE 中的说明。
要求
目标平台 | Windows |
标头 | d3d9.h (包括 D3D9.h) |
Library | D3D9.lib |