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

另请参阅

ColorFill

IDirect3D9