Microsoft DirectX 8.0 (C++) |
Determines whether or not a depth-stencil format is compatible with a render target format in a particular display mode.
HRESULT CheckDepthStencilMatch( UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT AdapterFormat, D3DFORMAT RenderTargetFormat, D3DFORMAT DepthStencilFormat );
If the depth-stencil format is compatible with the render target format in the display mode, this method returns D3D_OK.
D3DERR_INVALIDCALL can be returned if one or more of the parameters is invalid. If a depth-stencil format is not compatible with the render target in the display mode, then this method returns D3DERR_NOTAVAILABLE.
This method is provided to enable applications to work with hardware requiring that certain depth formats can only work with certain render target formats.
The following code fragment shows how you could use CheckDeviceFormat to validate a depth stencil format.
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 ); }
The preceding call will return FALSE if DepthFormat cannot be used in conjunction with AdapterFormat and BackBufferFormat.
Header: Declared in D3d8.h.
Import Library: Use D3d8.lib.