Share via


ID3D11Device2::CreateDeferredContext2-Methode (d3d11_2.h)

Erstellt einen verzögerten Kontext, der Befehlslisten aufzeichnen kann.

Syntax

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

Parameter

ContextFlags

Typ: UINT

Für die zukünftige Verwendung reserviert. Pass 0.

[out, optional] ppDeferredContext

Typ: ID3D11DeviceContext2**

Nach Abschluss der -Methode wird der übergebene Zeiger auf einen ID3D11DeviceContext2-Schnittstellenzeiger initialisiert.

Rückgabewert

Typ: HRESULT

Gibt bei erfolgreicher Ausführung S_OK zurück. Gibt andernfalls eine der folgenden Rückgaben zurück:

  • Gibt DXGI_ERROR_DEVICE_REMOVED zurück, wenn das Video Karte physisch aus dem System entfernt wurde oder ein Treiberupgrade für das Video Karte erfolgt ist. Wenn dieser Fehler auftritt, sollten Sie das Gerät zerstören und neu erstellen.
  • Gibt DXGI_ERROR_INVALID_CALL zurück, wenn die CreateDeferredContext2-Methode nicht aus dem aktuellen Kontext aufgerufen werden kann. Wenn das Gerät beispielsweise mit dem wert D3D11_CREATE_DEVICE_SINGLETHREADED erstellt wurde, gibt CreateDeferredContext2DXGI_ERROR_INVALID_CALL zurück.
  • Gibt E_INVALIDARG zurück, wenn der ContextFlags-Parameter ungültig ist.
  • Gibt E_OUTOFMEMORY zurück, wenn die App den verfügbaren Arbeitsspeicher erschöpft hat.

Hinweise

Ein verzögerter Kontext ist ein threadsicherer Kontext, den Sie zum Aufzeichnen von Grafikbefehlen in einem anderen Thread als dem Standard Renderingthreads verwenden können. Mithilfe eines verzögerten Kontexts können Sie Grafikbefehle in einer Befehlsliste aufzeichnen, die von der ID3D11CommandList-Schnittstelle gekapselt wird. Nachdem Sie alle Szenenelemente erfasst haben, können Sie sie zum endgültigen Rendering an den Standard Renderthread übermitteln. Auf diese Weise können Sie Renderingaufgaben gleichzeitig über mehrere Threads hinweg ausführen und die Leistung in Cpu-Szenarien mit mehreren Kernen möglicherweise verbessern.

Sie können mehrere verzögerte Kontexte erstellen.

Hinweis Wenn Sie den D3D11_CREATE_DEVICE_SINGLETHREADED Wert zum Erstellen des Geräts verwenden, schlägt CreateDeferredContext2 mit DXGI_ERROR_INVALID_CALL fehl, und Sie können keinen verzögerten Kontext erstellen.
 
Weitere Informationen zu verzögerten Kontexten finden Sie unter Sofortiges und verzögertes Rendering.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 8.1 [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 R2 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile d3d11_2.h
Bibliothek D3D11.lib

Weitere Informationen

ID3D11Device1::CreateDeferredContext1

ID3D11Geräte2

ID3D11Device3::CreateDeferredContext3

ID3D11Device::CreateDeferredContext