ID3D11DeviceContext::FinishCommandList 方法 (d3d11.h)

建立命令清單,並將圖形命令記錄到其中。

語法

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

參數

RestoreDeferredContextState

類型: BOOL

布爾值旗標,判斷運行時間在執行 FinishCommandList 之前是否儲存延遲的內容狀態,並在之後還原它。 使用 TRUE 表示運行時間需要儲存和還原狀態。 使用 FALSE 表示運行時間不會儲存或還原任何狀態。 在此情況下,延後的內容會在 呼叫 FinishCommandList 完成之後返回其默認狀態。 如需默認狀態的相關信息,請參閱 ID3D11DeviceContext::ClearState。 一般而言,除非您將狀態還原為幾乎相當於當您傳遞 TRUE 時,運行時間會還原的狀態,否則請使用 FALSE。 當您使用 FALSE 時,可以避免不必要的無效率狀態轉換。

注意 此參數不會影響目前 呼叫 FinishCommandList 所傳回的命令清單。 不過,此參數會影響相同延後內容上下一次 呼叫 FinishCommandList 的命令清單。
 

[out, optional] ppCommandList

類型: ID3D11CommandList**

完成方法時,會使用錄製的命令清單資訊初始化 ID3D11CommandList 介面指標的傳遞指標。 產生的 ID3D11CommandList 物件是不可變的,只能與 ID3D11DeviceContext::ExecuteCommandList 搭配使用。

傳回值

類型: HRESULT

如果成功,則傳回S_OK;否則,傳回下列其中一項:

  • 如果已從系統實際移除視訊卡,或發生視訊卡的驅動程序升級,則傳回DXGI_ERROR_DEVICE_REMOVED。 如果發生此錯誤,您應該終結並重新建立裝置。
  • 如果無法從目前內容呼叫 FinishCommandList ,則傳回DXGI_ERROR_INVALID_CALL。 請參閱<備註>。
  • 如果應用程式已用盡可用記憶體,則傳回E_OUTOFMEMORY。

備註

從延後的內容建立命令清單,並藉由呼叫 FinishCommandList 將命令記錄到其中。 呼叫 ID3D11DeviceContext::ExecuteCommandList,以立即內容播放命令清單。

執行命令清單之前和之後,會清除立即內容狀態。 命令清單沒有繼承的概念。 每次呼叫 FinishCommandList 只會記錄自任何先前呼叫 FinishCommandList 以來的狀態集。

例如, 裝置內容 的狀態是其轉譯狀態或管線狀態。 若要擷取裝置內容狀態,應用程式可以呼叫 ID3D11DeviceContext::GetDataID3D11DeviceContext::GetPredication

如需如何使用 FinishCommandList 的詳細資訊,請參閱 如何:記錄命令清單

Windows Phone 8:支援此 API。

規格需求

需求
目標平台 Windows
標頭 d3d11.h
程式庫 D3d11.lib

另請參閱

ID3D11DeviceContext