IDirect3D9::CheckDepthStencilMatch メソッド (d3d9helper.h)
深度ステンシル形式が、特定の表示モードのレンダー ターゲット形式と互換性があるかどうかを判断します。
構文
HRESULT CheckDepthStencilMatch(
[in] UINT Adapter,
[in] D3DDEVTYPE DeviceType,
[in] D3DFORMAT AdapterFormat,
[in] D3DFORMAT RenderTargetFormat,
[in] D3DFORMAT DepthStencilFormat
);
パラメーター
[in] Adapter
型: UINT
照会するディスプレイ・アダプターを示す序数。 D3DADAPTER_DEFAULTは常にプライマリ ディスプレイ アダプターです。
[in] DeviceType
種類: D3DDEVTYPE
D3DDEVTYPE 列挙された 型のメンバー。デバイスの種類を識別します。
[in] AdapterFormat
種類: D3DFORMAT
D3DFORMAT列挙型のメンバー。アダプターを配置する表示モードの形式を識別します。
[in] RenderTargetFormat
種類: D3DFORMAT
D3DFORMAT列挙型のメンバー。テスト対象のレンダー ターゲット サーフェスの形式を識別します。
[in] DepthStencilFormat
種類: D3DFORMAT
D3DFORMAT列挙型のメンバー。テスト対象の深度ステンシル サーフェスの形式を識別します。
戻り値
型: HRESULT
深度ステンシル形式が表示モードのレンダー ターゲット形式と互換性がある場合、このメソッドはD3D_OKを返します。 1 つ以上のパラメーターが無効な場合は、D3DERR_INVALIDCALLを返すことができます。 深度ステンシル形式が表示モードのレンダー ターゲットと互換性がない場合、このメソッドはD3DERR_NOTAVAILABLEを返します。
注釈
このメソッドは、特定の深度形式が特定のレンダー ターゲット形式でのみ動作することを要求するハードウェアをアプリケーションが操作できるようにするために提供されます。
DirectX 8.1 では、このメソッドの動作が変更されました。 このメソッドは、D24x8 および D32 深度ステンシル形式に注目するようになりました。 以前のバージョンでは、これらの形式は常に 32 ビットまたは 16 ビットのレンダー ターゲットで使用できるものとします。 このメソッドは、デバイスが混合深度操作が可能な場合にのみ、これらの形式のD3D_OKを返します。
次のコード フラグメントは、 CheckDeviceFormat を使用して深度ステンシル形式を検証する方法を示しています。
BOOL IsDepthFormatOk(D3DFORMAT DepthFormat,
D3DFORMAT AdapterFormat,
D3DFORMAT BackBufferFormat)
{
// Verify that the depth format exists
HRESULT hr = pD3D->CheckDeviceFormat(D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
AdapterFormat,
D3DUSAGE_DEPTHSTENCIL,
D3DRTYPE_SURFACE,
DepthFormat);
if(FAILED(hr)) return FALSE;
// Verify that the depth format is compatible
hr = pD3D->CheckDepthStencilMatch(D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
AdapterFormat,
BackBufferFormat,
DepthFormat);
return SUCCEEDED(hr);
}
DepthFormat を AdapterFormat および BackBufferFormat と組み合わせて使用できない場合、上記の呼び出しは FALSE を 返します。
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | d3d9helper.h (D3D9.h を含む) |
Library | D3D9.lib |