ID3D11DeviceContext::FinishCommandList 方法 (d3d11.h)

创建命令列表并在其中记录图形命令。

语法

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

参数

RestoreDeferredContextState

类型: BOOL

一个布尔标志,用于确定运行时在执行 FinishCommandList 之前是否保存延迟的上下文状态,并在之后还原它。 使用 TRUE 指示运行时需要保存和还原状态。 使用 FALSE 指示运行时不会保存或还原任何状态。 在这种情况下,对 FinishCommandList 的调用完成后,延迟的上下文将返回到其默认状态。 有关默认状态的信息,请参阅 ID3D11DeviceContext::ClearState。 通常,使用 FALSE ,除非将状态还原为几乎等效于运行时将还原的状态(如果通过 TRUE)。 使用 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
Library D3d11.lib

另请参阅

ID3D11DeviceContext