D3D11CreateDeviceAndSwapChain, fonction (d3d11.h)
Crée un appareil qui représente l’adaptateur d’affichage et une chaîne d’échange utilisée pour le rendu.
Syntaxe
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
);
Paramètres
[in, optional] pAdapter
Type : IDXGIAdapter*
Pointeur vers la carte vidéo à utiliser lors de la création d’un appareil. Passez null pour utiliser l’adaptateur par défaut, qui est le premier adaptateur énuméré par IDXGIFactory1::EnumAdapters.
DriverType
Type : D3D_DRIVER_TYPE
Le D3D_DRIVER_TYPE, qui représente le type de pilote à créer.
Software
Type : HMODULE
Handle vers une DLL qui implémente un rastériseur logiciel. Si DriverType est D3D_DRIVER_TYPE_SOFTWARE, Software ne doit pas avoir la valeur NULL. Obtenez le handle en appelant LoadLibrary, LoadLibraryEx ou GetModuleHandle. La valeur doit être non NULL quand D3D_DRIVER_TYPE est D3D_DRIVER_TYPE_SOFTWARE et NULL dans le cas contraire.
Flags
Type : UINT
Couches d’exécution à activer (voir D3D11_CREATE_DEVICE_FLAG) ; les valeurs peuvent être au niveau du bit OU ensemble.
[in, optional] pFeatureLevels
Type : const D3D_FEATURE_LEVEL*
Pointeur vers un tableau de D3D_FEATURE_LEVEL, qui détermine l’ordre des niveaux de fonctionnalité à créer. Si pFeatureLevels est défini sur NULL, cette fonction utilise le tableau suivant de niveaux de fonctionnalité :
{
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
Type : UINT
Nombre d’éléments dans pFeatureLevels.
SDKVersion
Type : UINT
La version du Kit de développement logiciel (SDK) ; utilisez D3D11_SDK_VERSION.
[in, optional] pSwapChainDesc
Type : const DXGI_SWAP_CHAIN_DESC*
Pointeur vers une description de chaîne d’échange (voir DXGI_SWAP_CHAIN_DESC) qui contient des paramètres d’initialisation pour la chaîne d’échange.
[out, optional] ppSwapChain
Type : IDXGISwapChain**
Retourne l’adresse d’un pointeur vers l’objet IDXGISwapChain qui représente la chaîne d’échange utilisée pour le rendu.
[out, optional] ppDevice
Type : ID3D11Device**
Retourne l’adresse d’un pointeur vers un objet ID3D11Device qui représente l’appareil créé. Si ce paramètre a la valeur NULL, aucun ID3D11Device n’est retourné'.
[out, optional] pFeatureLevel
Type : D3D_FEATURE_LEVEL*
Retourne un pointeur vers un D3D_FEATURE_LEVEL, qui représente le premier élément d’un tableau de niveaux de fonctionnalités pris en charge par l’appareil. Indiquez NULL comme entrée si vous n’avez pas besoin de déterminer le niveau de fonctionnalité pris en charge.
[out, optional] ppImmediateContext
Type : ID3D11DeviceContext**
Retourne l’adresse d’un pointeur vers un objet ID3D11DeviceContext qui représente le contexte de l’appareil. Si ce paramètre a la valeur NULL, aucun ID3D11DeviceContext n’est retourné.
Valeur retournée
Type : HRESULT
Cette méthode peut retourner l’un des codes de retour Direct3D 11.
Cette méthode retourne DXGI_ERROR_NOT_CURRENTLY_AVAILABLE si vous l’appelez dans un processus Session 0.
Cette méthode retourne E_INVALIDARG si vous définissez le paramètre pAdapter sur une valeur non NULL et le paramètre DriverType sur la valeur D3D_DRIVER_TYPE_HARDWARE.
Cette méthode retourne DXGI_ERROR_SDK_COMPONENT_MISSING si vous spécifiez D3D11_CREATE_DEVICE_DEBUG dans Indicateurs et que la version incorrecte de la couche de débogage est installée sur votre ordinateur. Installez la dernière version du SDK Windows pour obtenir la version correcte.
Remarques
Pour créer un appareil Direct3D 11.1 (ID3D11Device1), disponible sur Windows 8, Windows Server 2012 et Windows 7 et Windows Server 2008 R2 avec la mise à jour de plateforme pour Windows 7 installée, vous créez d’abord un ID3D11Device avec cette fonction, puis appelez la méthode QueryInterface sur l’objet ID3D11Device pour obtenir l’interface ID3D11Device1 .
Pour créer un appareil Direct3D 11.2 (ID3D11Device2), disponible sur Windows 8.1 et Windows Server 2012 R2, vous devez d’abord créer un ID3D11Device avec cette fonction, puis appeler la méthode QueryInterface sur l’objet ID3D11Device pour obtenir l’interface ID3D11Device2.
Consultez également la section remarques dans D3D11CreateDevice pour plus d’informations sur les dépendances de paramètres d’entrée. Pour créer un appareil sans créer de chaîne d’échange, utilisez la fonction D3D11CreateDevice .
Si vous définissez le paramètre pAdapter sur une valeur non NULL , vous devez également définir le paramètre DriverType sur la valeur D3D_DRIVER_TYPE_UNKNOWN. Si vous définissez le paramètre pAdapter sur une valeur non NULL et le paramètre DriverType sur la valeur D3D_DRIVER_TYPE_HARDWARE, D3D11CreateDeviceAndSwapChain retourne un HRESULT de E_INVALIDARG.
Le PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN de signature de fonction est fourni en tant que typedef, ce qui vous permet d’utiliser des techniques de liaison dynamique (GetProcAddress) au lieu d’une liaison statique.
Notes d’utilisation
Configuration requise
Plateforme cible | Windows |
En-tête | d3d11.h |
Bibliothèque | D3D11.lib |
DLL | D3D11.dll |