Método IDirect3D9::CheckDepthStencilMatch (d3d9helper.h)
Determina si un formato de galería de símbolos de profundidad es compatible con un formato de destino de representación en un modo de visualización determinado.
Sintaxis
HRESULT CheckDepthStencilMatch(
[in] UINT Adapter,
[in] D3DDEVTYPE DeviceType,
[in] D3DFORMAT AdapterFormat,
[in] D3DFORMAT RenderTargetFormat,
[in] D3DFORMAT DepthStencilFormat
);
Parámetros
[in] Adapter
Tipo: UINT
Número ordinal que indica el adaptador de pantalla que se va a consultar. D3DADAPTER_DEFAULT siempre es el adaptador de pantalla principal.
[in] DeviceType
Tipo: D3DDEVTYPE
Miembro del tipo enumerado D3DDEVTYPE , identificando el tipo de dispositivo.
[in] AdapterFormat
Tipo: D3DFORMAT
Miembro del tipo enumerado D3DFORMAT , identificando el formato del modo de presentación en el que se colocará el adaptador.
[in] RenderTargetFormat
Tipo: D3DFORMAT
Miembro del tipo enumerado D3DFORMAT , que identifica el formato de la superficie de destino de representación que se va a probar.
[in] DepthStencilFormat
Tipo: D3DFORMAT
Miembro del tipo enumerado D3DFORMAT , identificando el formato de la superficie de galería de símbolos de profundidad que se va a probar.
Valor devuelto
Tipo: HRESULT
Si el formato de galería de símbolos de profundidad es compatible con el formato render-target en el modo de presentación, este método devuelve D3D_OK. D3DERR_INVALIDCALL se puede devolver si uno o varios de los parámetros no son válidos. Si un formato de galería de símbolos de profundidad no es compatible con el destino de representación en el modo de presentación, este método devuelve D3DERR_NOTAVAILABLE.
Comentarios
Este método se proporciona para permitir que las aplicaciones funcionen con hardware que requiera que determinados formatos de profundidad solo puedan funcionar con determinados formatos de destino de representación.
Se ha cambiado el comportamiento de este método para DirectX 8.1. Este método ahora presta atención a los formatos D24x8 y D32 de galería de símbolos de profundidad. En la versión anterior se supone que estos formatos siempre se pueden usar con destinos de representación de 32 o 16 bits. Este método devolverá ahora D3D_OK para estos formatos solo si el dispositivo es capaz de realizar operaciones de profundidad mixta.
En el fragmento de código siguiente se muestra cómo puede usar CheckDeviceFormat para validar un formato de galería de símbolos de profundidad.
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);
}
La llamada anterior devolverá FALSE si DepthFormat no se puede usar junto con AdapterFormat y BackBufferFormat.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Windows |
Encabezado | d3d9helper.h (incluya D3D9.h) |
Library | D3D9.lib |