IDirect3D9::CheckDeviceFormat メソッド (d3d9.h)
サーフェス形式を指定したリソースの種類として使用でき、このアダプターを表すデバイスでテクスチャ、深度ステンシル バッファー、レンダー ターゲット、または 3 つの任意の組み合わせとして使用できるかどうかを決定します。
構文
HRESULT CheckDeviceFormat(
[in] UINT Adapter,
[in] D3DDEVTYPE DeviceType,
[in] D3DFORMAT AdapterFormat,
[in] DWORD Usage,
[in] D3DRESOURCETYPE RType,
[in] D3DFORMAT CheckFormat
);
パラメーター
[in] Adapter
型: UINT
照会するディスプレイ・アダプターを示す序数。 D3DADAPTER_DEFAULT は常にプライマリ ディスプレイ アダプターです。 このメソッドは、この値がシステム内のディスプレイ アダプターの数と等しいか、または超えたときに、D3DERR_INVALIDCALLを返します。
[in] DeviceType
種類: D3DDEVTYPE
D3DDEVTYPE 列挙された 型のメンバー。デバイスの種類を識別します。
[in] AdapterFormat
種類: D3DFORMAT
D3DFORMAT列挙型のメンバー。アダプターを配置する表示モードの形式を識別します。
[in] Usage
型: DWORD
サーフェスの使用オプションを要求しました。 使用オプションは 、D3DUSAGE 定数と D3DUSAGE_QUERY 定数の任意の組み合わせです ( checkDeviceFormat にはD3DUSAGE定数のサブセットのみが有効です。D3DUSAGE ページの表を参照してください)。
[in] RType
種類: D3DRESOURCETYPE
クエリ形式で使用するために要求されたリソースの種類。 D3DRESOURCETYPEのメンバー。
[in] CheckFormat
種類: D3DFORMAT
使用法で定義されているように、使用できるサーフェスの形式。 D3DFORMATのメンバー。
戻り値
型: HRESULT
要求された使用に対して指定されたデバイスと形式が互換性がある場合、このメソッドは D3D_OKを返します。
D3DERR_INVALIDCALLは、アダプターがシステム内のディスプレイ アダプターの数と等しいか、または超えている場合、または DeviceType がサポートされていない場合に返されます。
この使用のためにデバイスで形式が許容されない場合は、D3DERR_NOTAVAILABLEが返されます。
注釈
CheckDeviceFormat を使用してのハードウェア サポートをチェックする例を次に示します。
- 画面外のプレーンサーフェス形式 - Usage = 0、RType = D3DRTYPE_SURFACEを指定します。
- 深度ステンシル形式 - 次のスニペットは、渡された深度ステンシル形式をテストします。
BOOL IsDepthFormatExisting( D3DFORMAT DepthFormat, D3DFORMAT AdapterFormat ) { HRESULT hr = pD3D->CheckDeviceFormat( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, AdapterFormat, D3DUSAGE_DEPTHSTENCIL, D3DRTYPE_SURFACE, DepthFormat); return SUCCEEDED( hr ); }
列挙プロセスの詳細については、「 デバイスの選択 (Direct3D 9)」 を参照してください。
- このテクスチャを特定の形式でレンダリングできますか - 現在の表示モードを指定すると、この例では、テクスチャ形式が特定のバックバッファー形式と互換性があることを確認する方法を示します。
BOOL IsTextureFormatOk( D3DFORMAT TextureFormat, D3DFORMAT AdapterFormat ) { HRESULT hr = pD3D->CheckDeviceFormat( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, AdapterFormat, 0, D3DRTYPE_TEXTURE, TextureFormat); return SUCCEEDED( hr ); }
- ピクセル シェーダーでのアルファ ブレンド - [使用法] を [D3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING] に設定します。 これは、すべての浮動小数点レンダー ターゲットで失敗することを想定しています。
- ミップマップの自動生成 - [使用状況] を [D3DUSAGE_AUTOGENMIPMAP] に設定します。 mipmap の自動生成が失敗した場合、アプリケーションは mipmapped 以外のテクスチャを取得します。 このメソッドの呼び出しはヒントと見なされるため、失敗するのはミップマップの生成だけであれば、このメソッドはD3DOK_NOAUTOGEN (有効な成功コード) を返すことができます。 ミップマップの生成の詳細については、「 Mipmap の自動生成 (Direct3D 9)」を参照してください。
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | d3d9.h (D3D9.h を含む) |
Library | D3D9.lib |