Partager via


ID3D11Device2::CreateDeferredContext2, méthode (d3d11_2.h)

Crée un contexte différé, qui peut enregistrer des listes de commandes.

Syntaxe

HRESULT CreateDeferredContext2(
                  UINT                 ContextFlags,
  [out, optional] ID3D11DeviceContext2 **ppDeferredContext
);

Paramètres

ContextFlags

Type : UINT

Réservé pour un usage futur. Passez 0.

[out, optional] ppDeferredContext

Type : ID3D11DeviceContext2**

Une fois la méthode terminée, le pointeur passé vers un pointeur d’interface ID3D11DeviceContext2 est initialisé.

Valeur retournée

Type : HRESULT

Retourne S_OK en cas de réussite ; dans le cas contraire, retourne l’un des éléments suivants :

  • Retourne DXGI_ERROR_DEVICE_REMOVED si le carte vidéo a été physiquement supprimé du système ou si une mise à niveau du pilote pour la carte vidéo s’est produite. Si cette erreur se produit, vous devez détruire et recréer l’appareil.
  • Retourne DXGI_ERROR_INVALID_CALL si la méthode CreateDeferredContext2 ne peut pas être appelée à partir du contexte actuel. Par exemple, si l’appareil a été créé avec la valeur D3D11_CREATE_DEVICE_SINGLETHREADED , CreateDeferredContext2 retourne DXGI_ERROR_INVALID_CALL.
  • Retourne E_INVALIDARG si le paramètre ContextFlags n’est pas valide.
  • Retourne E_OUTOFMEMORY si l’application a épuisé la mémoire disponible.

Remarques

Un contexte différé est un contexte thread-safe que vous pouvez utiliser pour enregistrer des commandes graphiques sur un thread autre que le thread de rendu main. À l’aide d’un contexte différé, vous pouvez enregistrer des commandes graphiques dans une liste de commandes encapsulée par l’interface ID3D11CommandList . Après avoir enregistré tous les éléments de scène, vous pouvez les envoyer au thread de rendu main pour le rendu final. De cette façon, vous pouvez effectuer des tâches de rendu simultanément sur plusieurs threads et potentiellement améliorer les performances dans les scénarios d’UC multicœurs.

Vous pouvez créer plusieurs contextes différés.

Note Si vous utilisez la valeur D3D11_CREATE_DEVICE_SINGLETHREADED pour créer l’appareil, CreateDeferredContext2 échoue avec DXGI_ERROR_INVALID_CALL et vous ne pouvez pas créer de contexte différé.
 
Pour plus d’informations sur les contextes différés, consultez Rendu immédiat et différé.

Configuration requise

   
Client minimal pris en charge Windows 8.1 [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2012 R2 [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête d3d11_2.h
Bibliothèque D3D11.lib

Voir aussi

ID3D11Device1::CreateDeferredContext1

ID3D11Device2

ID3D11Device3::CreateDeferredContext3

ID3D11Device::CreateDeferredContext