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

Verifica se um tipo de dispositivo acelerado de hardware pode ser usado nesse adaptador.

Sintaxe

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 o adaptador de exibição para enumerar. D3DADAPTER_DEFAULT é sempre o adaptador de exibição principal. Esse método retorna D3DERR_INVALIDCALL quando esse valor é igual ou excede o número de adaptadores de exibição no sistema.

[in] DevType

Tipo: D3DDEVTYPE

Membro do tipo enumerado D3DDEVTYPE , indicando o tipo de dispositivo a ser verificado.

[in] AdapterFormat

Tipo: D3DFORMAT

Membro do tipo enumerado D3DFORMAT , indicando o formato do modo de exibição do adaptador para o qual o tipo de dispositivo deve ser verificado. Por exemplo, alguns dispositivos funcionarão somente em modos de 16 bits por pixel.

[in] BackBufferFormat

Tipo: D3DFORMAT

Formato de buffer de volta. Para obter mais informações sobre formatos, consulte D3DFORMAT. Esse valor deve ser um dos formatos de destino de renderização. Você pode usar GetAdapterDisplayMode para obter o formato atual.

Para aplicativos com janelas, o formato de buffer traseiro não precisa corresponder ao formato de modo de exibição se o hardware der suporte à conversão de cores. O conjunto de possíveis formatos de buffer traseiro é restrito, mas o runtime permitirá que qualquer formato de buffer traseiro válido seja apresentado a qualquer formato de área de trabalho. Há o requisito adicional de que o dispositivo seja operável na área de trabalho porque os dispositivos normalmente não operam em modos de 8 bits por pixel.

Aplicativos de tela inteira não podem fazer conversão de cores.

D3DFMT_UNKNOWN é permitido para o modo com janelas.

[in] bWindowed

Tipo: BOOL

Valor que indica se o tipo de dispositivo será usado no modo de tela inteira ou janela. Se definido como TRUE, a consulta será executada para aplicativos em janelas; caso contrário, esse valor deve ser definido como FALSE.

Retornar valor

Tipo: HRESULT

Se o dispositivo puder ser usado nesse adaptador, D3D_OK será retornado.

D3DERR_INVALIDCALL é retornado se o Adaptador for igual ou exceder o número de adaptadores de exibição no sistema. D3DERR_INVALIDCALL também será retornado se CheckDeviceType especificar um dispositivo que não existe.

D3DERR_NOTAVAILABLE é retornado se o formato de buffer de volta solicitado não tiver suporte ou se a aceleração de hardware não estiver disponível para os formatos especificados.

Comentários

Um tipo de dispositivo hal requer aceleração de hardware. Os aplicativos podem usar CheckDeviceType para determinar se o hardware e os drivers necessários estão presentes para dar suporte a um dispositivo hal.

Os aplicativos de tela inteira não devem especificar um DisplayFormat que contenha um canal alfa. Isso resultará em uma chamada com falha. Observe que um canal alfa pode estar presente no buffer traseiro, mas os dois formatos de exibição devem ser idênticos em todos os outros aspectos. Por exemplo, se DisplayFormat = D3DFMT_X1R5G5B5, os valores válidos para BackBufferFormat incluem D3DFMT_X1R5G5B5 e D3DFMT_A1R5G5B5, mas excluem D3DFMT_R5G6B5.

O fragmento de código a seguir mostra como você pode usar CheckDeviceType para testar se um determinado tipo de dispositivo pode ser usado nesse 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.

Esse código retornará S_OK se o dispositivo puder ser usado no adaptador padrão com o formato de superfície especificado.

Usar CheckDeviceType para testar a compatibilidade entre um buffer traseiro diferente do formato de exibição retornará os valores apropriados. Isso significa que a chamada refletirá os recursos do dispositivo. Se o dispositivo não puder renderizar para o formato de buffer de fundo solicitado, a chamada ainda retornará D3DERR_NOTAVAILABLE. Se o dispositivo puder renderizar para o formato, mas não puder executar a apresentação de conversão de cores, o valor retornado também será D3DERR_NOTAVAILABLE. Os aplicativos podem descobrir o suporte de hardware para a apresentação em si chamando CheckDeviceFormatConversion. Nenhuma emulação de software para a própria apresentação de conversão de cores será oferecida.

Requisitos

   
Plataforma de Destino Windows
Cabeçalho d3d9.h (inclua D3D9.h)
Biblioteca D3D9.lib

Confira também

IDirect3D9