Método IDirect3D9::CheckDeviceFormat (d3d9.h)

Determina si un formato de superficie está disponible como un tipo de recurso especificado y se puede usar como textura, búfer de galería de símbolos de profundidad o destino de representación, o cualquier combinación de los tres, en un dispositivo que representa este adaptador.

Sintaxis

HRESULT CheckDeviceFormat(
  [in] UINT            Adapter,
  [in] D3DDEVTYPE      DeviceType,
  [in] D3DFORMAT       AdapterFormat,
  [in] DWORD           Usage,
  [in] D3DRESOURCETYPE RType,
  [in] D3DFORMAT       CheckFormat
);

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. Este método devuelve D3DERR_INVALIDCALL cuando este valor es igual o supera el número de adaptadores de pantalla del sistema.

[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] Usage

Tipo: DWORD

Opciones de uso solicitadas para la superficie. Las opciones de uso son cualquier combinación de D3DUSAGE y constantes de D3DUSAGE_QUERY (solo un subconjunto de las constantes de D3DUSAGE son válidas para CheckDeviceFormat; vea la tabla en la página D3DUSAGE).

[in] RType

Tipo: D3DRESOURCETYPE

Tipo de recurso solicitado para su uso con el formato consultado. Miembro de D3DRESOURCETYPE.

[in] CheckFormat

Tipo: D3DFORMAT

Formato de las superficies que se pueden usar, tal y como se define en Uso. Miembro de D3DFORMAT.

Valor devuelto

Tipo: HRESULT

Si el formato es compatible con el dispositivo especificado para el uso solicitado, este método devuelve D3D_OK.

D3DERR_INVALIDCALL se devuelve si Adapter es igual o supera el número de adaptadores de pantalla del sistema, o si DeviceType no es compatible.

D3DERR_NOTAVAILABLE se devuelve si el formato no es aceptable para el dispositivo para este uso.

Comentarios

Estos son algunos ejemplos de uso de CheckDeviceFormat para comprobar la compatibilidad de hardware de:

  • Un formato de superficie sin formato sin pantalla: especifique El uso = 0 y RType = D3DRTYPE_SURFACE.
  • Formato de galería de símbolos de profundidad: el siguiente fragmento de código comprueba el formato de galería de símbolos de profundidad pasado:
    
    BOOL IsDepthFormatExisting( D3DFORMAT DepthFormat, D3DFORMAT AdapterFormat ) 
    {
        HRESULT hr = pD3D->CheckDeviceFormat( D3DADAPTER_DEFAULT,
                                              D3DDEVTYPE_HAL,
                                              AdapterFormat,
                                              D3DUSAGE_DEPTHSTENCIL,
                                              D3DRTYPE_SURFACE,
                                              DepthFormat);
        
        return SUCCEEDED( hr );
    }
    

    Consulta Seleccionar un dispositivo (Direct3D 9) para obtener más información sobre el proceso de enumeración.

  • ¿Se puede representar esta textura en un formato determinado: dado el modo de visualización actual, en este ejemplo se muestra cómo comprobar que el formato de textura es compatible con el formato específico del búfer de reserva:
    
    BOOL IsTextureFormatOk( D3DFORMAT TextureFormat, D3DFORMAT AdapterFormat ) 
    {
        HRESULT hr = pD3D->CheckDeviceFormat( D3DADAPTER_DEFAULT,
                                              D3DDEVTYPE_HAL,
                                              AdapterFormat,
                                              0,
                                              D3DRTYPE_TEXTURE,
                                              TextureFormat);
        
        return SUCCEEDED( hr );
    }
    
  • Combinación alfa en un sombreador de píxeles: establezca El uso en D3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING. Espere que se produzca un error en todos los destinos de representación de punto flotante.
  • Autogeneración de mapas mip: establezca El uso en D3DUSAGE_AUTOGENMIPMAP. Si se produce un error en la generación automática del mapa mip, la aplicación obtendrá una textura que no sea mipmapped. Llamar a este método se considera una sugerencia, por lo que este método puede devolver D3DOK_NOAUTOGEN (un código correcto válido) si lo único que produce un error es la generación de mapas mip. Para obtener más información sobre la generación de mapas mip, vea Generación automática de mapas Mip (Direct3D 9).
Al migrar código de Direct3D 9 a Direct3D 10, direct3D 10 equivalente a CheckDeviceFormat es CheckFormatSupport.

Requisitos

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

Consulte también

IDirect3D9