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.

Nota Non combinare l'uso di DXGI 1.0 (IDXGIFactory) e DXGI 1.1 (IDXGIFactory1) in un'applicazione. Usare IDXGIFactory o IDXGIFactory1, ma non entrambi in un'applicazione.
 

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,
};
          
Nota Se il runtime Direct3D 11.1 è presente nel computer e pFeatureLevels è impostato su NULL, questa funzione non creerà un dispositivo D3D_FEATURE_LEVEL_11_1 . Per creare un dispositivo D3D_FEATURE_LEVEL_11_1 , è necessario specificare in modo esplicito una matrice di D3D_FEATURE_LEVEL che include D3D_FEATURE_LEVEL_11_1. Se si specifica una matrice di D3D_FEATURE_LEVEL che contiene D3D_FEATURE_LEVEL_11_1 in un computer in cui non è installato il runtime Direct3D 11.1, questa funzione ha immediatamente esito negativo con E_INVALIDARG.
 

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

Nota Se si chiama questo metodo in un processo Di sessione 0, viene restituito DXGI_ERROR_NOT_CURRENTLY_AVAILABLE.
 
Questo punto di ingresso è supportato dal runtime direct3D 11, disponibile in Windows 7, Windows Server 2008 R2 e come aggiornamento a Windows Vista (KB971644).

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

Nota La funzione D3D11CreateDeviceAndSwapChain non esiste per le app di Windows Store. Le app di Windows Store usano invece la funzione D3D11CreateDevice e quindi usano il metodo IDXGIFactory2::CreateSwapChainForCoreWindow .
 
Nota Questa funzione non è stata aggiornata per supportare le funzionalità aggiuntive recenti della creazione della catena di scambio. Per i metodi di creazione della catena di scambio più aggiornati, fare riferimento ai metodi di IDXGIFactory2 (tra cui CreateSwapChainForHwnd, CreateSwapChainForCoreWindow e CreateSwapChainForComposition).
 
Windows Phone 8: questa API è supportata.

Requisiti

   
Piattaforma di destinazione Windows
Intestazione d3d11.h
Libreria D3D11.lib
DLL D3D11.dll

Vedi anche

Funzioni di sistema