次の方法で共有


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

こちらもご覧ください

IDirect3D9