Condividi tramite


Metodo IDirect3D9::CheckDeviceType (d3d9helper.h)

Verifica se un tipo di dispositivo accelerato hardware può essere usato in questa scheda.

Sintassi

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

Parametri

iAdapter

Tipo: UINT

Numero ordinale che denota l'adattatore di visualizzazione per 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.

DisplayFormat

Tipo: D3DFORMAT

Membro del tipo enumerato D3DFORMAT , che indica il formato della modalità di visualizzazione dell'adattatore per cui è necessario 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 indietro. Per altre informazioni sui formati, vedere D3DFORMAT. Questo valore deve essere uno dei formati di destinazione del rendering. È possibile usare GetAdapterDisplayMode per ottenere il formato corrente.

Per le applicazioni finestrate, il formato del buffer indietro non deve corrispondere al formato della modalità di visualizzazione se l'hardware supporta la conversione dei colori. Il set di possibili formati di buffer indietro è vincolato, ma il runtime consentirà la presentazione di qualsiasi formato di buffer back valido a qualsiasi formato desktop. C'è il requisito aggiuntivo che il dispositivo sia operabile nel desktop perché i dispositivi in genere non operano in 8 bit per modalità 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à usato in modalità schermo intero o finestrato. Se impostato su TRUE, la query viene eseguita per le applicazioni finestrate; in caso contrario, questo valore deve essere impostato 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 indietro 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. In questo modo verrà eseguita una chiamata non riuscita. Si noti che un canale alfa può essere presente nel buffer posteriore, ma i due formati di visualizzazione devono essere identici in tutti gli altri rispetto. Ad esempio, se DisplayFormat = D3DFMT_X1R5G5B5, i valori validi per BackBufferFormat includono D3DFMT_X1R5G5B5 e D3DFMT_A1R5G5B5 ma escludere D3DFMT_R5G6B5.

Il frammento di codice seguente illustra come usare CheckDeviceType per verificare se un determinato tipo di dispositivo può essere usato 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 nella scheda predefinita con il formato di superficie specificato.

L'uso di CheckDeviceType per testare la compatibilità tra un buffer back diverso dal formato di visualizzazione restituirà valori appropriati. Ciò significa che la chiamata rifletterà le funzionalità del dispositivo. Se il dispositivo non è in grado di eseguire il rendering nel formato 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, il valore restituito sarà anche 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

Requisito Valore
Piattaforma di destinazione Windows
Intestazione d3d9helper.h (include D3D9.h)
Libreria D3D9.lib

Vedi anche

IDirect3D9