Partager via


ID3D11Device ::CreateDeferredContext, méthode (d3d11.h)

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

Syntaxe

HRESULT CreateDeferredContext(
                  UINT                ContextFlags,
  [out, optional] ID3D11DeviceContext **ppDeferredContext
);

Paramètres

ContextFlags

Type : UINT

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

[out, optional] ppDeferredContext

Type : ID3D11DeviceContext**

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

Valeur retournée

Type : HRESULT

Retourne S_OK en cas de réussite ; sinon, retourne l’une des valeurs suivantes :

  • 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 le carte vidéo a eu lieu. Si cette erreur se produit, vous devez détruire et recréer l’appareil.
  • Retourne DXGI_ERROR_INVALID_CALL si la méthode CreateDeferredContext 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 , CreateDeferredContext 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 . Une fois tous les éléments de scène enregistrés, 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 de processeur 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 représenté par ID3D11Device, la méthode CreateDeferredContext échoue et vous ne pourrez pas créer de contexte différé.
 
Pour plus d’informations sur les contextes différés, consultez Rendu immédiat et différé.

Windows Phone 8 : Cette API est prise en charge.

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête d3d11.h
Bibliothèque D3d11.lib

Voir aussi

ID3D11Device

ID3D11Device1 ::CreateDeferredContext1

ID3D11Device2 ::CreateDeferredContext2

ID3D11Device3 ::CreateDeferredContext3