ID3D11DeviceContext::FinishCommandList 方法 (d3d11.h)
创建命令列表并在其中记录图形命令。
语法
HRESULT FinishCommandList(
BOOL RestoreDeferredContextState,
[out, optional] ID3D11CommandList **ppCommandList
);
参数
RestoreDeferredContextState
类型: BOOL
一个布尔标志,用于确定运行时在执行 FinishCommandList 之前是否保存延迟的上下文状态,并在之后还原它。 使用 TRUE 指示运行时需要保存和还原状态。 使用 FALSE 指示运行时不会保存或还原任何状态。 在这种情况下,对 FinishCommandList 的调用完成后,延迟的上下文将返回到其默认状态。 有关默认状态的信息,请参阅 ID3D11DeviceContext::ClearState。 通常,使用 FALSE ,除非将状态还原为几乎等效于运行时将还原的状态(如果通过 TRUE)。 使用 FALSE 时,可以避免不必要的低效状态转换。
[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::GetData 或 ID3D11DeviceContext::GetPredication。
有关如何使用 FinishCommandList 的详细信息,请参阅 如何:记录命令列表。
Windows Phone 8:支持此 API。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | d3d11.h |
Library | D3d11.lib |