次の方法で共有


IDirect3D9::CheckDeviceFormatConversion

デバイスが 1 つのディスプレイ フォーマットから別のフォーマットへの変換をサポートしているかどうかを確認するために、デバイスをテストします。

HRESULT 
CheckDeviceFormatConversion(
  UINT Adapter,
  D3DDEVTYPE DeviceType,
  D3DFORMAT SourceFormat,
  D3DFORMAT TargetFormat
);

パラメータ

  • Adapter
    ディスプレイ アダプターの序数。D3DADAPTER_DEFAULT は常にプライマリ ディスプレイ アダプターです。システムのディスプレイ アダプターの数以上の値が指定された場合、このメソッドは D3DERR_INVALIDCALL を返します。
  • DeviceType
    デバイス タイプ。D3DDEVTYPE 列挙型のメンバーです。
  • SourceFormat
    ソース アダプターのフォーマット。D3DFORMAT 列挙型のメンバーです。
  • TargetFormat
    ターゲット アダプターのフォーマット。D3DFORMAT 列挙型のメンバーです。

戻り値

メソッドが成功した場合は、D3D_OK を返します。失敗すると、D3DERR_INVALIDCALL を返します。ハードウェアが 2 つのフォーマットの間の変換をサポートしていない場合は、D3DERR_NOTAVAILABLE を返します。

解説 

IDirect3D9::CheckDeviceType を使用し、ディスプレイ フォーマットと異なるバック バッファーとの互換性をテストすると、適切な値が返されます。つまり、この呼び出しはデバイス機能を反映します。デバイスが要求されたバック バッファー フォーマットにレンダリングできない場合、この呼び出しは D3DERR_NOTAVAILABLE を返します。デバイスがこのフォーマットにレンダリングできる場合も、カラー変換プレゼンテーションが実行できないのであれば、D3DERR_NOTAVAILABLE が返されます。IDirect3D9::CheckDeviceFormatConversion の呼び出しにより、アプリケーションはプレゼンテーション自体のハードウェア サポートを検出できます。カラー変換プレゼンテーション自体のソフトウェア エミュレーションは提供されません。

IDirect3D9::CheckDeviceFormatConversion を使用して、IDirect3DDevice9::StretchRect への呼び出しで可能な変換前のサーフェス フォーマットと変換後のサーフェス フォーマットの組み合わせを決定することもできます。

カラー変換は、以下のソース フォーマットおよびターゲット フォーマットに制限されています。

  • サーフェス フォーマットは、FOURCC フォーマット、または有効なバック バッファー フォーマットにする必要があります。これらの一覧については、「FourCC フォーマット」および「バック バッファーまたはディスプレイ フォーマット」を参照してください。
  • ターゲット フォーマットは、以下の符号なしフォーマットのいずれかである必要があります。
    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

要件

ヘッダー: D3D9.h 宣言

ライブラリ: D3D9.lib 内容

関連項目

IDirect3DDevice9::ColorFill