IDirect3D9::CheckDeviceFormat メソッド (d3d9helper.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を返します。
アダプターがシステム内のディスプレイ アダプターの数と等しいか、または超えている場合、または DeviceType がサポートされていない場合は、D3DERR_INVALIDCALLが返されます。
この使用のためにデバイスで形式が受け入れられない場合は、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 以外のテクスチャを取得します。 このメソッドの呼び出しはヒントと見なされるため、失敗するのは mipmap 生成だけである場合、このメソッドはD3DOK_NOAUTOGEN (有効な成功コード) を返すことができます。 ミップマップ生成の詳細については、「 Mipmap の自動生成 (Direct3D 9)」を参照してください。
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | d3d9helper.h (D3D9.h を含む) |
Library | D3D9.lib |