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.

Note Ne mélangez pas l’utilisation de DXGI 1.0 (IDXGIFactory) et de DXGI 1.1 (IDXGIFactory1) dans une application. Utilisez IDXGIFactory ou IDXGIFactory1, mais pas les deux dans une application.
 

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,
};
          
Note Si le runtime Direct3D 11.1 est présent sur l’ordinateur et que pFeatureLevels a la valeur NULL, cette fonction ne crée pas d’appareil D3D_FEATURE_LEVEL_11_1 . Pour créer un appareil D3D_FEATURE_LEVEL_11_1 , vous devez fournir explicitement un tableau D3D_FEATURE_LEVEL qui inclut D3D_FEATURE_LEVEL_11_1. Si vous fournissez un tableau D3D_FEATURE_LEVEL qui contient des D3D_FEATURE_LEVEL_11_1 sur un ordinateur sur lequel le runtime Direct3D 11.1 n’est pas installé, cette fonction échoue immédiatement avec E_INVALIDARG.
 

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

Note Si vous appelez cette méthode dans un processus Session 0, elle retourne DXGI_ERROR_NOT_CURRENTLY_AVAILABLE.
 
Ce point d’entrée est pris en charge par le runtime Direct3D 11, qui est disponible sur Windows 7, Windows Server 2008 R2 et en tant que mise à jour de Windows Vista (KB971644).

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

Note La fonction D3D11CreateDeviceAndSwapChain n’existe pas pour les applications du Windows Store. Au lieu de cela, les applications du Windows Store utilisent la fonction D3D11CreateDevice , puis la méthode IDXGIFactory2::CreateSwapChainForCoreWindow .
 
Note Cette fonction n’a pas été mise à jour pour prendre en charge les fonctionnalités supplémentaires récentes de création de chaîne d’échange. Pour obtenir les méthodes de création de chaîne d’échange les plus à jour, reportez-vous aux méthodes d’IDXGIFactory2 (y compris CreateSwapChainForHwnd, CreateSwapChainForCoreWindow et CreateSwapChainForComposition).
 
Windows Phone 8 : Cette API est prise en charge.

Configuration requise

   
Plateforme cible Windows
En-tête d3d11.h
Bibliothèque D3D11.lib
DLL D3D11.dll

Voir aussi

Fonctions Core