Microsoft DirectX 8.0 (C++) |
深度ステンシル フォーマットが、特定のディスプレイ モードでのレンダリング ターゲット フォーマットと互換性があるかどうかを調べる。
HRESULT CheckDepthStencilMatch( UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT AdapterFormat, D3DFORMAT RenderTargetFormat, D3DFORMAT DepthStencilFormat );
深度ステンシル フォーマットが、ディスプレイ モードのターゲット レンダリング フォーマットと互換性がある場合、このメソッドは D3D_OK を返す。
パラメータの 1 つ以上が無効な場合は、D3DERR_INVALIDCALL が返される場合がある。深度ステンシル フォーマットが、ディスプレイ モードのターゲット レンダリング フォーマットと互換性がない場合、このメソッドは D3DERR_NOTAVAILABLE を返す。
このメソッドは、特定の深度フォーマットが特定のレンダリング ターゲット フォーマットでのみ機能するハードウェア レンダリングでアプリケーションが機能できるようにするために用意されている。
次のコードは、CheckDeviceFormat を使用して深度ステンシル フォーマットを検証する方法を示している。
BOOL IsDepthFormatOk( D3DFORMAT DepthFormat, D3DFORMAT AdapterFormat, D3DFORMAT BackBufferFormat ) { // 深度フォーマットが存在することを確認する。 HRESULT hr = pD3D->CheckDeviceFormat( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, AdapterFormat, D3DUSAGE_DEPTHSTENCIL, D3DRTYPE_SURFACE, DepthFormat); if( FAILED( hr ) ) return FALSE; // 深度フォーマットに互換性があることを確認する。 hr = pD3D->CheckDepthStencilMatch( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, AdapterFormat, BackBufferFormat, DepthFormat); return SUCCEEDED( hr ); }
上の呼び出しは、DepthFormat が AdapterFormat および BackBufferFormat と組み合わせて使用できない場合、FALSE を返す。
ヘッダー : D3d8.h で宣言。
インポート ライブラリ : D3d8.lib を使用。