Funzione D3D11CreateDevice (d3d11.h)
Crea un dispositivo che rappresenta l'adattatore di visualizzazione.
Sintassi
HRESULT D3D11CreateDevice(
[in, optional] IDXGIAdapter *pAdapter,
D3D_DRIVER_TYPE DriverType,
HMODULE Software,
UINT Flags,
[in, optional] const D3D_FEATURE_LEVEL *pFeatureLevels,
UINT FeatureLevels,
UINT SDKVersion,
[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'adapter predefinito, ovvero la prima scheda enumerata da IDXGIFactory1::EnumAdapters.
DriverType
Tipo: D3D_DRIVER_TYPE
D3D_DRIVER_TYPE, che rappresenta il tipo di driver da creare.
Software
Tipo: HMODULE
Handle a una DLL che implementa un rasterizer software. Se DriverType è D3D_DRIVER_TYPE_SOFTWARE, il software non deve essere NULL. Ottenere l'handle chiamando LoadLibrary, LoadLibraryEx o GetModuleHandle.
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
Versione dell'SDK; usare D3D11_SDK_VERSION.
[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*
In caso di esito positivo, restituisce la prima D3D_FEATURE_LEVEL dalla matrice pFeatureLevels riuscita. Specificare NULL come input se non è necessario determinare quale 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 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 errata del livello di debug viene installata nel computer. Installare windows SDK più recente per ottenere la versione corretta.
Commenti
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 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 ID3D11Device .
Per creare un dispositivo Direct3D 11.2 (ID3D11Device2), disponibile in Windows 8.1 e Windows Server 2012 R2, creare prima un ID3D11Device con questa funzione e quindi chiamare il metodo QueryInterface nell'oggetto ID3D11Device per ottenere l'interfaccia ID3D11Device2.
Impostare ppDevice e ppImmediateContext su NULL per determinare quale livello di funzionalità è supportato esaminando pFeatureLevel senza creare un dispositivo.
Per un esempio, vedere Procedura: Creare un dispositivo e un contesto immediato; per creare un dispositivo e una catena di scambio contemporaneamente, usare D3D11CreateDeviceAndSwapChain.
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, D3D11CreateDevice restituisce un valore HRESULT di E_INVALIDARG.
Differenze tra Direct3D 10 e Direct3D 11: In Direct3D 10 la presenza di pAdapter ha determinato quale adattatore usare e DriverType potrebbe non corrispondervi a quello che era l'adapter. In Direct3D 11, se si sta tentando di creare un hardware o un dispositivo software, impostare pAdapter != NULL che limita gli altri input per essere:
|
La firma della funzione PFN_D3D11_CREATE_DEVICE viene fornita come typedef, in modo che sia possibile usare tecniche di collegamento dinamico (GetProcAddress) anziché collegare staticamente.
Windows Phone 8: questa API è supportata.
Windows Phone 8.1: questa API è supportata.
Requisiti
Piattaforma di destinazione | Windows |
Intestazione | d3d11.h |
Libreria | D3D11.lib |
DLL | D3D11.dll |