Método IDirect3D9::CheckDeviceFormat (d3d9helper.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).
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Windows |
Encabezado | d3d9helper.h (incluya D3D9.h) |
Library | D3D9.lib |