IDXGIFactory2 ::CreateSwapChainForHwnd, méthode (dxgi1_2.h)

Crée une chaîne d’échange associée à un handle HWND dans la fenêtre de sortie de la chaîne d’échange.

Syntaxe

HRESULT CreateSwapChainForHwnd(
  [in]           IUnknown                              *pDevice,
  [in]           HWND                                  hWnd,
  [in]           const DXGI_SWAP_CHAIN_DESC1           *pDesc,
  [in, optional] const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,
  [in, optional] IDXGIOutput                           *pRestrictToOutput,
  [out]          IDXGISwapChain1                       **ppSwapChain
);

Paramètres

[in] pDevice

Pour Direct3D 11 et les versions antérieures de Direct3D, il s’agit d’un pointeur vers l’appareil Direct3D pour la chaîne d’échange. Pour Direct3D 12, il s’agit d’un pointeur vers une file d’attente de commandes directes (reportez-vous à ID3D12CommandQueue). Ce paramètre ne peut pas avoir la valeur NULL.

[in] hWnd

Handle HWND associé à la chaîne d’échange créée par CreateSwapChainForHwnd . Ce paramètre ne peut pas avoir la valeur NULL.

[in] pDesc

Pointeur vers une structure DXGI_SWAP_CHAIN_DESC1 pour la description de la chaîne d’échange. Ce paramètre ne peut pas avoir la valeur NULL.

[in, optional] pFullscreenDesc

Pointeur vers une structure de DXGI_SWAP_CHAIN_FULLSCREEN_DESC pour la description d’une chaîne d’échange en plein écran. Vous pouvez éventuellement définir ce paramètre pour créer une chaîne d’échange en plein écran. Définissez-la sur NULL pour créer une chaîne d’échange fenêtré.

[in, optional] pRestrictToOutput

Pointeur vers l’interface IDXGIOutput pour la sortie à laquelle restreindre le contenu. Vous devez également passer l’indicateur DXGI_PRESENT_RESTRICT_TO_OUTPUT dans un appel IDXGISwapChain1 ::P resent1 pour forcer le contenu à apparaître noirci sur toute autre sortie. Si vous souhaitez limiter le contenu à une autre sortie, vous devez créer une chaîne d’échange. Toutefois, vous pouvez restreindre de manière conditionnelle le contenu en fonction de l’indicateur DXGI_PRESENT_RESTRICT_TO_OUTPUT .

Définissez ce paramètre sur NULL si vous ne souhaitez pas restreindre le contenu à une cible de sortie.

[out] ppSwapChain

Pointeur vers une variable qui reçoit un pointeur vers l’interface IDXGISwapChain1 pour la chaîne d’échange créée par CreateSwapChainForHwnd .

Valeur retournée

CreateSwapChainForHwnd retourne :

  • S_OK s’il a correctement créé une chaîne d’échange.
  • E_OUTOFMEMORY si la mémoire n’est pas disponible pour terminer l’opération.
  • DXGI_ERROR_INVALID_CALL si l’application appelante a fourni des données non valides, par exemple si pDesc ou ppSwapChain a la valeur NULL ou si les membres de données pDesc ne sont pas valides.
  • Peut-être d’autres codes d’erreur décrits dans la rubrique DXGI_ERROR qui sont définis par le type d’appareil que vous passez à pDevice.

Mise à jour de plateforme pour Windows 7 : DXGI_SCALING_NONE n’est pas pris en charge sur Windows 7 ou Windows Server 2008 R2 avec la mise à jour de la plateforme pour Windows 7 installée et provoque createSwapChainForHwnd à retourner DXGI_ERROR_INVALID_CALL lorsqu’il est appelé. Pour plus d’informations sur la mise à jour de plateforme pour Windows 7, consultez Mise à jour de plateforme pour Windows 7.

Remarques

Note N’utilisez pas cette méthode dans les applications du Windows Store. Utilisez plutôt IDXGIFactory2 ::CreateSwapChainForCoreWindow.
 
Si vous spécifiez la largeur, la hauteur ou les deux (membres largeur et hauteur de DXGI_SWAP_CHAIN_DESC1 vers lesquels pDesc pointe) de la chaîne d’échange sur zéro, le runtime obtient la taille de la fenêtre de sortie spécifiée par le paramètre hWnd .

Vous pouvez ensuite appeler la méthode IDXGISwapChain1 ::GetDesc1 pour récupérer la valeur de largeur ou de hauteur affectée.

Étant donné que vous ne pouvez associer qu’une seule chaîne d’échange de modèle de présentation inversée à la fois à un modèle HWND, la stratégie Microsoft Direct3D 11 de report de la destruction des objets peut entraîner des problèmes si vous tentez de détruire une chaîne d’échange de modèle de présentation inversée et de la remplacer par une autre chaîne d’échange. Pour plus d’informations sur cette situation, consultez Problèmes de destruction différée avec les chaînes d’échange de présentation inversées.

Pour plus d’informations sur le choix d’un format pour la mémoire tampon arrière de la chaîne d’échange, consultez Conversion de données pour l’espace de couleur.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8 et mise à jour de plateforme pour Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2012 et mise à jour de plateforme pour Windows Server 2008 R2 [applications de bureau uniquement]
Plateforme cible Windows
En-tête dxgi1_2.h
Bibliothèque Dxgi.lib

Voir aussi

Pour de meilleures performances, utilisez le modèle de basculement DXGI

IDXGIFactory2