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

Comprueba si se puede usar un tipo de dispositivo acelerado por hardware en este adaptador.

Sintaxis

HRESULT CheckDeviceType(
  [in] UINT       Adapter,
  [in] D3DDEVTYPE DevType,
  [in] D3DFORMAT  AdapterFormat,
  [in] D3DFORMAT  BackBufferFormat,
  [in] BOOL       bWindowed
);

Parámetros

[in] Adapter

Tipo: UINT

Número ordinal que indica el adaptador de pantalla que se va a enumerar. 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] DevType

Tipo: D3DDEVTYPE

Miembro del tipo enumerado D3DDEVTYPE , que indica el tipo de dispositivo que se va a comprobar.

[in] AdapterFormat

Tipo: D3DFORMAT

Miembro del tipo enumerado D3DFORMAT , que indica el formato del modo de presentación del adaptador para el que se va a comprobar el tipo de dispositivo. Por ejemplo, algunos dispositivos solo funcionarán en modos de 16 bits por píxel.

[in] BackBufferFormat

Tipo: D3DFORMAT

Formato de búfer de reserva. Para obtener más información sobre los formatos, vea D3DFORMAT. Este valor debe ser uno de los formatos de destino de representación. Puedes usar GetAdapterDisplayMode para obtener el formato actual.

En el caso de las aplicaciones con ventanas, el formato de búfer de reserva no necesita coincidir con el formato de modo de presentación si el hardware admite la conversión de color. El conjunto de posibles formatos de búfer de reserva está restringido, pero el tiempo de ejecución permitirá que se presente cualquier formato de búfer de reserva válido a cualquier formato de escritorio. Hay el requisito adicional de que el dispositivo sea operable en el escritorio porque los dispositivos normalmente no funcionan en modos de 8 bits por píxel.

Las aplicaciones de pantalla completa no pueden realizar la conversión de color.

D3DFMT_UNKNOWN se permite para el modo de ventana.

[in] bWindowed

Tipo: BOOL

Valor que indica si el tipo de dispositivo se usará en modo de pantalla completa o de ventana. Si se establece en TRUE, la consulta se realiza para las aplicaciones ventanadas; de lo contrario, este valor debe establecerse en FALSE.

Valor devuelto

Tipo: HRESULT

Si el dispositivo se puede usar en este adaptador, se devuelve D3D_OK.

D3DERR_INVALIDCALL se devuelve si adapter es igual o supera el número de adaptadores de pantalla del sistema. D3DERR_INVALIDCALL también se devuelve si CheckDeviceType especificó un dispositivo que no existe.

D3DERR_NOTAVAILABLE se devuelve si no se admite el formato de búfer de reserva solicitado o si la aceleración de hardware no está disponible para los formatos especificados.

Comentarios

Un tipo de dispositivo hal requiere aceleración de hardware. Las aplicaciones pueden usar CheckDeviceType para determinar si el hardware y los controladores necesarios están presentes para admitir un dispositivo hal.

Las aplicaciones de pantalla completa no deben especificar un DisplayFormat que contenga un canal alfa. Esto dará lugar a una llamada con error. Tenga en cuenta que un canal alfa puede estar presente en el búfer de reserva, pero los dos formatos de presentación deben ser idénticos en todos los demás aspectos. Por ejemplo, si DisplayFormat = D3DFMT_X1R5G5B5, los valores válidos para BackBufferFormat incluyen D3DFMT_X1R5G5B5 y D3DFMT_A1R5G5B5 pero excluyen D3DFMT_R5G6B5.

En el fragmento de código siguiente se muestra cómo puede usar CheckDeviceType para probar si se puede usar un tipo de dispositivo determinado en este adaptador.


if(SUCCEEDED(pD3Device->CheckDeviceType(D3DADAPTER_DEFAULT, 
                                        D3DDEVTYPE_HAL, 
                                        DisplayFormat, 
                                        BackBufferFormat, 
                                        bIsWindowed)))
    
     return S_OK;
// There is no HAL on this adapter using this render-target format. 
// Try again, using another format.

Este código devuelve S_OK si el dispositivo se puede usar en el adaptador predeterminado con el formato de superficie especificado.

El uso de CheckDeviceType para probar la compatibilidad entre un búfer de reserva que difiere del formato de presentación devolverá los valores adecuados. Esto significa que la llamada reflejará las funcionalidades del dispositivo. Si el dispositivo no se puede representar en el formato de búfer de reserva solicitado, la llamada seguirá devolviendo D3DERR_NOTAVAILABLE. Si el dispositivo se puede representar en el formato, pero no puede realizar la presentación de conversión de color, el valor devuelto también se D3DERR_NOTAVAILABLE. Las aplicaciones pueden detectar la compatibilidad de hardware con la propia presentación llamando a CheckDeviceFormatConversion. No se ofrecerá ninguna emulación de software para la presentación de conversión de colores.

Requisitos

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

Consulte también

IDirect3D9