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.
[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 |