ID3D11DeviceContext::FinishCommandList-Methode (d3d11.h)

Erstellen Sie eine Befehlsliste, und zeichnen Sie Grafikbefehle darin auf.

Syntax

HRESULT FinishCommandList(
                  BOOL              RestoreDeferredContextState,
  [out, optional] ID3D11CommandList **ppCommandList
);

Parameter

RestoreDeferredContextState

Typ: BOOL

Ein boolesches Flag, das bestimmt, ob die Runtime den verzögerten Kontextzustand speichert, bevor FinishCommandList ausgeführt wird und anschließend wiederhergestellt wird. Verwenden Sie TRUE , um anzugeben, dass die Laufzeit den Zustand speichern und wiederherstellen muss. Verwenden Sie FALSE , um anzugeben, dass die Laufzeit keinen Zustand speichert oder wiederhergestellt. In diesem Fall kehrt der verzögerte Kontext in seinen Standardzustand zurück, nachdem der Aufruf von FinishCommandList abgeschlossen ist. Informationen zum Standardzustand finden Sie unter ID3D11DeviceContext::ClearState. Verwenden Sie in der Regel FALSE , es sei denn, Sie stellen den Zustand wieder her, sodass er nahezu dem Zustand entspricht, den die Laufzeit wiederherstellen würde, wenn Sie TRUE übergeben. Wenn Sie FALSE verwenden, können Sie unnötige und ineffiziente Zustandsübergänge vermeiden.

Hinweis Dieser Parameter wirkt sich nicht auf die Befehlsliste aus, die vom aktuellen Aufruf von FinishCommandList zurückgegeben wird. Dieser Parameter wirkt sich jedoch auf die Befehlsliste des nächsten Aufrufs von FinishCommandList im gleichen verzögerten Kontext aus.
 

[out, optional] ppCommandList

Typ: ID3D11CommandList**

Nach Abschluss der -Methode wird der übergebene Zeiger auf einen ID3D11CommandList-Schnittstellenzeiger mit den aufgezeichneten Befehlslisteninformationen initialisiert. Das resultierende ID3D11CommandList-Objekt ist unveränderlich und kann nur mit ID3D11DeviceContext::ExecuteCommandList verwendet werden.

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 FinishCommandList nicht aus dem aktuellen Kontext aufgerufen werden kann. Siehe Bemerkungen.
  • Gibt E_OUTOFMEMORY zurück, wenn die Anwendung den verfügbaren Arbeitsspeicher erschöpft hat.

Hinweise

Erstellen Sie eine Befehlsliste aus einem verzögerten Kontext, und zeichnen Sie Befehle in ihn auf, indem Sie FinishCommandList aufrufen. Geben Sie eine Befehlsliste mit einem unmittelbaren Kontext wieder, indem Sie ID3D11DeviceContext::ExecuteCommandList aufrufen.

Der unmittelbare Kontextzustand wird vor und nach dem Ausführen einer Befehlsliste gelöscht. Eine Befehlsliste hat kein Konzept der Vererbung. Jeder Aufruf von FinishCommandList zeichnet nur den Zustand auf, der seit jedem vorherigen Aufruf von FinishCommandList festgelegt wurde.

Der Zustand eines Gerätekontexts ist z. B. der Renderzustand oder der Pipelinezustand. Zum Abrufen des Gerätekontextzustands kann eine Anwendung ID3D11DeviceContext::GetData oder ID3D11DeviceContext::GetPredication aufrufen.

Weitere Informationen zur Verwendung von FinishCommandList finden Sie unter Vorgehensweise: Aufzeichnen einer Befehlsliste.

Windows Phone 8: Diese API wird unterstützt.

Anforderungen

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

Weitere Informationen

ID3D11DeviceContext