Metodo IDirect3D9::CheckDeviceType (d3d9.h)

Verifica se è possibile utilizzare un tipo di dispositivo con accelerazione hardware in questa scheda.

Sintassi

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

Parametri

[in] Adapter

Tipo: UINT

Numero ordinale che indica l'adattatore di visualizzazione da enumerare. D3DADAPTER_DEFAULT è sempre la scheda di visualizzazione primaria. Questo metodo restituisce D3DERR_INVALIDCALL quando questo valore è uguale o supera il numero di schede di visualizzazione nel sistema.

[in] DevType

Tipo: D3DDEVTYPE

Membro del tipo enumerato D3DDEVTYPE , che indica il tipo di dispositivo da controllare.

[in] AdapterFormat

Tipo: D3DFORMAT

Membro del tipo enumerato D3DFORMAT , che indica il formato della modalità di visualizzazione della scheda per cui controllare il tipo di dispositivo. Ad esempio, alcuni dispositivi funzioneranno solo in modalità a 16 bit per pixel.

[in] BackBufferFormat

Tipo: D3DFORMAT

Formato del buffer nascosto. Per altre informazioni sui formati, vedere D3DFORMAT. Questo valore deve essere uno dei formati di destinazione di rendering. È possibile usare GetAdapterDisplayMode per ottenere il formato corrente.

Per le applicazioni finestra, il formato del buffer nascosto non deve corrispondere al formato della modalità di visualizzazione se l'hardware supporta la conversione dei colori. Il set di possibili formati di buffer nascosto è vincolato, ma il runtime consentirà di presentare qualsiasi formato di buffer nascosto valido a qualsiasi formato desktop. C'è il requisito aggiuntivo che il dispositivo sia operabile nel desktop perché i dispositivi in genere non funzionano in modalità a 8 bit per pixel.

Le applicazioni a schermo intero non possono eseguire la conversione dei colori.

D3DFMT_UNKNOWN consentito per la modalità finestra.

[in] bWindowed

Tipo: BOOL

Valore che indica se il tipo di dispositivo verrà utilizzato in modalità a schermo intero o finestra. Se impostato su TRUE, la query viene eseguita per le applicazioni finestrate; in caso contrario, questo valore deve essere impostato su FALSE.

Valore restituito

Tipo: HRESULT

Se il dispositivo può essere usato in questa scheda, viene restituito D3D_OK.

D3DERR_INVALIDCALL viene restituito se Adapter è uguale o supera il numero di schede di visualizzazione nel sistema. D3DERR_INVALIDCALL viene restituito anche se CheckDeviceType ha specificato un dispositivo che non esiste.

D3DERR_NOTAVAILABLE viene restituito se il formato del buffer nascosto richiesto non è supportato o se l'accelerazione hardware non è disponibile per i formati specificati.

Commenti

Un tipo di dispositivo hal richiede l'accelerazione hardware. Le applicazioni possono usare CheckDeviceType per determinare se sono presenti hardware e driver necessari per supportare un dispositivo hal.

Le applicazioni a schermo intero non devono specificare un displayFormat che contiene un canale alfa. Verrà restituita una chiamata non riuscita. Si noti che un canale alfa può essere presente nel buffer nascosto, ma i due formati di visualizzazione devono essere identici in tutti gli altri aspetti. Ad esempio, se DisplayFormat = D3DFMT_X1R5G5B5, i valori validi per BackBufferFormat includono D3DFMT_X1R5G5B5 e D3DFMT_A1R5G5B5 ma escludino D3DFMT_R5G6B5.

Il frammento di codice seguente mostra come usare CheckDeviceType per verificare se è possibile usare un determinato tipo di dispositivo in questa scheda.


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.

Questo codice restituisce S_OK se il dispositivo può essere usato nell'adattatore predefinito con il formato di superficie specificato.

L'uso di CheckDeviceType per verificare la compatibilità tra un buffer nascosto diverso dal formato di visualizzazione restituirà i valori appropriati. Ciò significa che la chiamata rifletterà le funzionalità del dispositivo. Se il dispositivo non può eseguire il rendering nel formato di back-buffer richiesto, la chiamata restituirà comunque D3DERR_NOTAVAILABLE. Se il dispositivo può eseguire il rendering nel formato, ma non può eseguire la presentazione di conversione dei colori, anche il valore restituito verrà D3DERR_NOTAVAILABLE. Le applicazioni possono individuare il supporto hardware per la presentazione stessa chiamando CheckDeviceFormatConversion. Non verrà offerta alcuna emulazione software per la presentazione di conversione dei colori stessa.

Requisiti

   
Piattaforma di destinazione Windows
Intestazione d3d9.h (include D3D9.h)
Libreria D3D9.lib

Vedi anche

IDirect3D9