Freigeben über


ID3D11Device::CreateDeferredContext-Methode (d3d11.h)

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

Syntax

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

Parameter

ContextFlags

Typ: UINT

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

[out, optional] ppDeferredContext

Typ: ID3D11DeviceContext**

Nach Abschluss der -Methode wird der übergebene Zeiger auf einen ID3D11DeviceContext-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 CreateDeferredContext-Methode nicht aus dem aktuellen Kontext aufgerufen werden kann. Wenn das Gerät beispielsweise mit dem wert D3D11_CREATE_DEVICE_SINGLETHREADED erstellt wurde, gibt CreateDeferredContextDXGI_ERROR_INVALID_CALL zurück.
  • Gibt E_INVALIDARG zurück, wenn der ContextFlags-Parameter ungültig ist.
  • Gibt E_OUTOFMEMORY zurück, wenn die Anwendung 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 alle Szenenelemente aufgezeichnet wurden, 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 wert D3D11_CREATE_DEVICE_SINGLETHREADED verwenden, um das Gerät zu erstellen, das durch ID3D11Device dargestellt wird, schlägt die CreateDeferredContext-Methode fehl, und Sie können keinen verzögerten Kontext erstellen.
 
Weitere Informationen zu verzögerten Kontexten finden Sie unter Sofortiges und verzögertes Rendering.

Windows Phone 8: Diese API wird unterstützt.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile d3d11.h
Bibliothek D3d11.lib

Weitere Informationen

ID3D11Device

ID3D11Device1::CreateDeferredContext1

ID3D11Device2::CreateDeferredContext2

ID3D11Device3::CreateDeferredContext3