Metodo IDirect3D9::CheckDeviceFormat (d3d9.h)
Determina se un formato di superficie è disponibile come tipo di risorsa specificato e può essere usato come trama, buffer depth-stencil o destinazione di rendering o qualsiasi combinazione dei tre, in un dispositivo che rappresenta questa scheda.
Sintassi
HRESULT CheckDeviceFormat(
[in] UINT Adapter,
[in] D3DDEVTYPE DeviceType,
[in] D3DFORMAT AdapterFormat,
[in] DWORD Usage,
[in] D3DRESOURCETYPE RType,
[in] D3DFORMAT CheckFormat
);
Parametri
[in] Adapter
Tipo: UINT
Numero ordinale che indica l'adattatore di visualizzazione su cui eseguire la query. 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] DeviceType
Tipo: D3DDEVTYPE
Membro del tipo enumerato D3DDEVTYPE , identificando il tipo di dispositivo.
[in] AdapterFormat
Tipo: D3DFORMAT
Membro del D3DFORMAT tipo enumerato, identificando il formato della modalità di visualizzazione in cui verrà posizionato l'adattatore.
[in] Usage
Tipo: DWORD
Opzioni di utilizzo richieste per la superficie. Le opzioni di utilizzo sono qualsiasi combinazione di costanti D3DUSAGE e D3DUSAGE_QUERY (solo un subset delle costanti D3DUSAGE sono valide per CheckDeviceFormat; vedere la tabella nella pagina D3DUSAGE).
[in] RType
Tipo: D3DRESOURCETYPE
Tipo di risorsa richiesto per l'uso con il formato sottoposto a query. Membro di D3DRESOURCETYPE.
[in] CheckFormat
Tipo: D3DFORMAT
Formato delle superfici che possono essere utilizzate, come definito dall'utilizzo. Membro di D3DFORMAT.
Valore restituito
Tipo: HRESULT
Se il formato è compatibile con il dispositivo specificato per l'utilizzo richiesto, questo metodo restituisce D3D_OK.
D3DERR_INVALIDCALL viene restituito se Adapter è uguale o supera il numero di schede di visualizzazione nel sistema o se DeviceType non è supportato.
D3DERR_NOTAVAILABLE viene restituito se il formato non è accettabile per il dispositivo per questo utilizzo.
Commenti
Ecco alcuni esempi che usano CheckDeviceFormat per verificare il supporto hardware di:
- Formato superficie normale fuori schermo : specificare Usage = 0 e RType = D3DRTYPE_SURFACE.
- Formato depth-stencil: il frammento di codice seguente verifica il formato depth-stencil superato:
BOOL IsDepthFormatExisting( D3DFORMAT DepthFormat, D3DFORMAT AdapterFormat ) { HRESULT hr = pD3D->CheckDeviceFormat( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, AdapterFormat, D3DUSAGE_DEPTHSTENCIL, D3DRTYPE_SURFACE, DepthFormat); return SUCCEEDED( hr ); }
Per altri dettagli sul processo di enumerazione, vedere Selezione di un dispositivo (Direct3D 9 ).
- È possibile eseguire il rendering di questa trama in un formato specifico- Data la modalità di visualizzazione corrente, in questo esempio viene illustrato come verificare che il formato della trama sia compatibile con il formato back-buffer specifico:
BOOL IsTextureFormatOk( D3DFORMAT TextureFormat, D3DFORMAT AdapterFormat ) { HRESULT hr = pD3D->CheckDeviceFormat( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, AdapterFormat, 0, D3DRTYPE_TEXTURE, TextureFormat); return SUCCEEDED( hr ); }
- Fusione alfa in un pixel shader: impostare Utilizzo su D3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING. Si prevede che questa operazione non riesca per tutte le destinazioni di rendering a virgola mobile.
- Generazione automatica di mipmap: impostare Utilizzo su D3DUSAGE_AUTOGENMIPMAP. Se la generazione automatica mipmap ha esito negativo, l'applicazione otterrà una trama non mipmapped. La chiamata a questo metodo è considerata un hint, quindi questo metodo può restituire D3DOK_NOAUTOGEN (codice di esito positivo valido) se l'unica cosa che ha esito negativo è la generazione mipmap. Per altre informazioni sulla generazione di mipmap, vedere Generazione automatica di Mipmaps (Direct3D 9).For more information about mipmap generation, see Automatic Generation of Mipmaps (Direct3D 9).
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Windows |
Intestazione | d3d9.h (include D3D9.h) |
Libreria | D3D9.lib |