IDirect3D9::CheckDeviceFormatConversion 方法 (d3d9.h)
测试设备,看它是否支持从一种显示格式转换为另一种显示格式。
语法
HRESULT CheckDeviceFormatConversion(
[in] UINT Adapter,
[in] D3DDEVTYPE DeviceType,
[in] D3DFORMAT SourceFormat,
[in] D3DFORMAT TargetFormat
);
参数
[in] Adapter
类型: UINT
显示适配器序号。 D3DADAPTER_DEFAULT始终是主显示适配器。 当此值等于或超过系统中的显示适配器数时,此方法返回D3DERR_INVALIDCALL。
[in] DeviceType
类型: D3DDEVTYPE
设备类型。 D3DDEVTYPE枚举类型的成员。
[in] SourceFormat
类型: D3DFORMAT
源适配器格式。 D3DFORMAT枚举类型的成员。
[in] TargetFormat
类型: D3DFORMAT
目标适配器格式。 D3DFORMAT枚举类型的成员。
返回值
类型: HRESULT
如果方法成功,则返回值D3D_OK。 如果 方法失败,则返回值D3DERR_INVALIDCALL。 当硬件不支持在两种格式之间进行转换时,方法将返回D3DERR_NOTAVAILABLE。
注解
使用 CheckDeviceType 测试与显示格式不同的后台缓冲区之间的兼容性将返回适当的值。 这意味着调用将反映设备功能。 如果设备无法呈现为请求的后台缓冲区格式,则调用仍将返回D3DERR_NOTAVAILABLE。 如果设备可以呈现为格式,但无法执行颜色转换演示文稿,则返回值也将D3DERR_NOTAVAILABLE。 应用程序可以通过调用 CheckDeviceFormatConversion 来发现对演示文稿本身的硬件支持。 不会为颜色转换演示文稿本身提供软件仿真。
CheckDeviceFormatConversion 还可用于确定调用 StretchRect 时允许哪些源图面格式和目标图面格式的组合。
颜色转换仅限于以下源和目标格式。
- 源格式必须是 FOURCC 格式或有效的后台缓冲区格式。 有关这些格式的列表,请参阅 FourCC 格式 和 BackBuffer 或显示格式。
- 目标格式必须是以下无符号格式之一:
D3DFMT_X1R5G5B5 D3DFMT_A1R5G5B5 D3DFMT_R5G6B5 D3DFMT_R8G8B8 D3DFMT_X8R8G8B8 D3DFMT_A8R8G8B8 D3DFMT_A2R10G10B10 D3DFMT_A16B16G16R16 D3DFMT_A2B10G10R10 D3DFMT_A8B8G8R8 D3DFMT_X8B8G8R8 D3DFMT_A16B16G16R16F D3DFMT_A32B32G32R32F
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | d3d9.h (包括 D3D9.h) |
Library | D3D9.lib |