Funzione D3D11CreateDeviceAndSwapChain (d3d11.h)
Crea un dispositivo che rappresenta la scheda di visualizzazione e una catena di scambio utilizzata per il rendering.
Sintassi
HRESULT D3D11CreateDeviceAndSwapChain(
[in, optional] IDXGIAdapter *pAdapter,
D3D_DRIVER_TYPE DriverType,
HMODULE Software,
UINT Flags,
[in, optional] const D3D_FEATURE_LEVEL *pFeatureLevels,
UINT FeatureLevels,
UINT SDKVersion,
[in, optional] const DXGI_SWAP_CHAIN_DESC *pSwapChainDesc,
[out, optional] IDXGISwapChain **ppSwapChain,
[out, optional] ID3D11Device **ppDevice,
[out, optional] D3D_FEATURE_LEVEL *pFeatureLevel,
[out, optional] ID3D11DeviceContext **ppImmediateContext
);
Parametri
[in, optional] pAdapter
Tipo: IDXGIAdapter*
Puntatore alla scheda video da usare durante la creazione di un dispositivo. Passare NULL per usare l'adattatore predefinito, ovvero la prima scheda enumerata da IDXGIFactory1::EnumAdapters.
DriverType
Tipo: D3D_DRIVER_TYPE
Il D3D_DRIVER_TYPE, che rappresenta il tipo di driver da creare.
Software
Tipo: HMODULE
Handle di una DLL che implementa un rasterizzatore software. Se DriverType è D3D_DRIVER_TYPE_SOFTWARE, Software non deve essere NULL. Ottenere l'handle chiamando LoadLibrary, LoadLibraryEx o GetModuleHandle. Il valore deve essere diverso da NULL quando D3D_DRIVER_TYPE è D3D_DRIVER_TYPE_SOFTWARE e NULL in caso contrario.
Flags
Tipo: UINT
Livelli di runtime da abilitare (vedere D3D11_CREATE_DEVICE_FLAG); i valori possono essere or bit per bit insieme.
[in, optional] pFeatureLevels
Tipo: const D3D_FEATURE_LEVEL*
Puntatore a una matrice di D3D_FEATURE_LEVEL, che determina l'ordine dei livelli di funzionalità da creare. Se pFeatureLevels è impostato su NULL, questa funzione usa la matrice di livelli di funzionalità seguente:
{
D3D_FEATURE_LEVEL_11_0,
D3D_FEATURE_LEVEL_10_1,
D3D_FEATURE_LEVEL_10_0,
D3D_FEATURE_LEVEL_9_3,
D3D_FEATURE_LEVEL_9_2,
D3D_FEATURE_LEVEL_9_1,
};
FeatureLevels
Tipo: UINT
Numero di elementi in pFeatureLevels.
SDKVersion
Tipo: UINT
La versione dell'SDK; usare D3D11_SDK_VERSION.
[in, optional] pSwapChainDesc
Tipo: const DXGI_SWAP_CHAIN_DESC*
Puntatore a una descrizione della catena di scambio (vedere DXGI_SWAP_CHAIN_DESC) che contiene i parametri di inizializzazione per la catena di scambio.
[out, optional] ppSwapChain
Tipo: IDXGISwapChain**
Restituisce l'indirizzo di un puntatore all'oggetto IDXGISwapChain che rappresenta la catena di scambio utilizzata per il rendering.
[out, optional] ppDevice
Tipo: ID3D11Device**
Restituisce l'indirizzo di un puntatore a un oggetto ID3D11Device che rappresenta il dispositivo creato. Se questo parametro è NULL, non verrà restituito alcun ID3D11Device.
[out, optional] pFeatureLevel
Tipo: D3D_FEATURE_LEVEL*
Restituisce un puntatore a un D3D_FEATURE_LEVEL, che rappresenta il primo elemento in una matrice di livelli di funzionalità supportati dal dispositivo. Specificare NULL come input se non è necessario determinare il livello di funzionalità supportato.
[out, optional] ppImmediateContext
Tipo: ID3D11DeviceContext**
Restituisce l'indirizzo di un puntatore a un oggetto ID3D11DeviceContext che rappresenta il contesto del dispositivo. Se questo parametro è NULL, non verrà restituito alcun ID3D11DeviceContext.
Valore restituito
Tipo: HRESULT
Questo metodo può restituire uno dei codici restituiti Direct3D 11.
Questo metodo restituisce DXGI_ERROR_NOT_CURRENTLY_AVAILABLE se viene chiamato in un processo di Sessione 0.
Questo metodo restituisce E_INVALIDARG se si imposta il parametro pAdapter su un valore non NULL e il parametro DriverType sul valore D3D_DRIVER_TYPE_HARDWARE.
Questo metodo restituisce DXGI_ERROR_SDK_COMPONENT_MISSING se si specifica D3D11_CREATE_DEVICE_DEBUG in Flag e la versione non corretta del livello di debug è installata nel computer. Installare la versione più recente di Windows SDK per ottenere la versione corretta.
Commenti
Per creare un dispositivo Direct3D 11.1 (ID3D11Device1), disponibile in Windows 8, Windows Server 2012 e Windows 7 e Windows Server 2008 R2 con l'aggiornamento della piattaforma per Windows 7 installato, creare prima un ID3D11Device con questa funzione e quindi chiamare il metodo QueryInterface sull'oggetto ID3D11Device per ottenere l'interfaccia ID3D11Device1 .
Per creare un dispositivo Direct3D 11.2 (ID3D11Device2), disponibile in Windows 8.1 e Windows Server 2012 R2, creare prima un oggetto ID3D11Device con questa funzione e quindi chiamare il metodo QueryInterface sull'oggetto ID3D11Device per ottenere l'interfaccia ID3D11Device2.
Vedere anche la sezione osservazioni in D3D11CreateDevice per informazioni dettagliate sulle dipendenze dei parametri di input. Per creare un dispositivo senza creare una catena di scambio, usare la funzione D3D11CreateDevice .
Se si imposta il parametro pAdapter su un valore non NULL , è necessario impostare anche il parametro DriverType sul valore D3D_DRIVER_TYPE_UNKNOWN. Se si imposta il parametro pAdapter su un valore non NULL e il parametro DriverType sul valore D3D_DRIVER_TYPE_HARDWARE, D3D11CreateDeviceAndSwapChain restituisce un VALORE HRESULT di E_INVALIDARG.
La firma della funzione PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN viene fornita come typedef, in modo da poter usare tecniche di collegamento dinamico (GetProcAddress) anziché il collegamento statico.
Note sull'utilizzo
Requisiti
Piattaforma di destinazione | Windows |
Intestazione | d3d11.h |
Libreria | D3D11.lib |
DLL | D3D11.dll |