Método IDirect3D9::CheckDepthStencilMatch (d3d9.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 presentació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 , que identifica el tipo de dispositivo.

[in] AdapterFormat

Tipo: D3DFORMAT

Miembro del tipo enumerado D3DFORMAT , que identifica 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 , que identifica 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 de destino de representación 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.

El comportamiento de este método se ha cambiado para DirectX 8.1. Este método ahora presta atención a los formatos de galería de símbolos de profundidad D24x8 y D32. 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

   
Plataforma de destino Windows
Encabezado d3d9.h (incluya D3D9.h)
Library D3D9.lib

Consulte también

IDirect3D9