D3D11CreateDeviceAndSwapChain-Funktion (d3d11.h)
Erstellt ein Gerät, das die Grafikkarte und eine Swapchain darstellt, die zum Rendern verwendet wird.
Syntax
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
);
Parameter
[in, optional] pAdapter
Typ: IDXGIAdapter*
Ein Zeiger auf die Grafikkarte, die beim Erstellen eines Geräts verwendet werden soll. Übergeben Sie NULL , um den Standardadapter zu verwenden. Dabei handelt es sich um den ersten Adapter, der von IDXGIFactory1::EnumAdapters aufgezählt wird.
DriverType
Typ: D3D_DRIVER_TYPE
Der D3D_DRIVER_TYPE, der den zu erstellenden Treibertyp darstellt.
Software
Typ: HMODULE
Ein Handle für eine DLL, die einen Softwarerasterer implementiert. Wenn DriverTypeD3D_DRIVER_TYPE_SOFTWARE ist, darf die Software nicht NULL sein. Rufen Sie das Handle ab, indem Sie LoadLibrary, LoadLibraryEx oder GetModuleHandle aufrufen. Der Wert sollte nicht NULL sein, wenn D3D_DRIVER_TYPED3D_DRIVER_TYPE_SOFTWARE und andernfalls NULL ist.
Flags
Typ: UINT
Die zu aktivierenden Laufzeitebenen (siehe D3D11_CREATE_DEVICE_FLAG); Werte können bitweise ODER zusammen sein.
[in, optional] pFeatureLevels
Typ: const D3D_FEATURE_LEVEL*
Ein Zeiger auf ein Array von D3D_FEATURE_LEVELs, die die Reihenfolge der Zu erstellenden Featureebenen bestimmen. Wenn pFeatureLevels auf NULL festgelegt ist, verwendet diese Funktion das folgende Array von Featureebenen:
{
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
Typ: UINT
Die Anzahl der Elemente in pFeatureLevels.
SDKVersion
Typ: UINT
Die SDK-Version; verwenden Sie D3D11_SDK_VERSION.
[in, optional] pSwapChainDesc
Typ: const DXGI_SWAP_CHAIN_DESC*
Ein Zeiger auf eine Swapchainbeschreibung (siehe DXGI_SWAP_CHAIN_DESC), die Initialisierungsparameter für die Swapchain enthält.
[out, optional] ppSwapChain
Typ: IDXGISwapChain**
Gibt die Adresse eines Zeigers auf das IDXGISwapChain-Objekt zurück, das die zum Rendern verwendete Swapchain darstellt.
[out, optional] ppDevice
Typ: ID3D11Geräte**
Gibt die Adresse eines Zeigers auf ein ID3D11Device-Objekt zurück, das das erstellte Gerät darstellt. Wenn dieser Parameter NULL ist, wird kein ID3D11Device zurückgegeben."
[out, optional] pFeatureLevel
Typ: D3D_FEATURE_LEVEL*
Gibt einen Zeiger auf einen D3D_FEATURE_LEVEL zurück, der das erste Element in einem Array von Featureebenen darstellt, die vom Gerät unterstützt werden. Geben Sie NULL als Eingabe an, wenn Sie nicht ermitteln müssen, welche Featureebene unterstützt wird.
[out, optional] ppImmediateContext
Typ: ID3D11DeviceContext**
Gibt die Adresse eines Zeigers auf ein ID3D11DeviceContext-Objekt zurück, das den Gerätekontext darstellt. Wenn dieser Parameter NULL ist, wird kein ID3D11DeviceContext zurückgegeben.
Rückgabewert
Typ: HRESULT
Diese Methode kann einen der Direct3D 11-Rückgabecodes zurückgeben.
Diese Methode gibt DXGI_ERROR_NOT_CURRENTLY_AVAILABLE zurück, wenn Sie sie in einem Sitzung 0-Prozess aufrufen.
Diese Methode gibt E_INVALIDARG zurück, wenn Sie den pAdapter-Parameter auf einen Wert ungleich NULL und den DriverType-Parameter auf den D3D_DRIVER_TYPE_HARDWARE-Wert festlegen.
Diese Methode gibt DXGI_ERROR_SDK_COMPONENT_MISSING zurück, wenn Sie D3D11_CREATE_DEVICE_DEBUG in Flags angeben und die falsche Version der Debugebene auf Ihrem Computer installiert ist. Installieren Sie das neueste Windows SDK, um die richtige Version zu erhalten.
Hinweise
So erstellen Sie ein Direct3D 11.1-Gerät (ID3D11Device1), das unter Windows 8 verfügbar ist Windows Server 2012, Windows 7 und Windows Server 2008 R2 mit installiertem Plattformupdate für Windows 7 erstellen Sie zunächst ein ID3D11Device mit dieser Funktion und rufen dann die QueryInterface-Methode für das ID3D11Device-Objekt auf, um die ID3D11Device1-Schnittstelle abzurufen.
Um ein Direct3D 11.2-Gerät (ID3D11Device2) zu erstellen, das unter Windows 8.1 und Windows Server 2012 R2 verfügbar ist, erstellen Sie zunächst ein ID3D11Device mit dieser Funktion und rufen dann die QueryInterface-Methode für das ID3D11Device-Objekt auf, um die ID3D11Device2-Schnittstelle abzurufen.
Weitere Informationen zu Eingabeparameterabhängigkeiten finden Sie im Abschnitt "Hinweise" in D3D11CreateDevice . Um ein Gerät zu erstellen, ohne eine Swapchain zu erstellen, verwenden Sie die D3D11CreateDevice-Funktion .
Wenn Sie den pAdapter-Parameter auf einen Wert ohne NULL festlegen, müssen Sie auch den DriverType-Parameter auf den wert D3D_DRIVER_TYPE_UNKNOWN festlegen. Wenn Sie den pAdapter-Parameter auf einen Wert ohne NULL und den DriverType-Parameter auf den D3D_DRIVER_TYPE_HARDWARE-Wert festlegen, gibt D3D11CreateDeviceAndSwapChain ein HRESULT von E_INVALIDARG zurück.
Die Funktionssignatur PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN wird als Typedef bereitgestellt, sodass Sie dynamische Verknüpfungstechniken (GetProcAddress) anstelle von statisch verknüpfen können.
Hinweise zur Verwendung
Anforderungen
Zielplattform | Windows |
Kopfzeile | d3d11.h |
Bibliothek | D3D11.lib |
DLL | D3D11.dll |