ID3D11Device2::CreateDeferredContext2 方法 (d3d11_2.h)
创建可以记录 命令列表的延迟上下文。
语法
HRESULT CreateDeferredContext2(
UINT ContextFlags,
[out, optional] ID3D11DeviceContext2 **ppDeferredContext
);
参数
ContextFlags
类型: UINT
保留供将来使用。 传递 0。
[out, optional] ppDeferredContext
类型: ID3D11DeviceContext2**
方法完成后,将初始化指向 ID3D11DeviceContext2 接口指针的传递指针。
返回值
类型: HRESULT
如果成功,则返回S_OK;否则, 返回下列值之一:
- 如果视频卡已实际从系统中删除,或者视频卡的驱动程序升级,则返回DXGI_ERROR_DEVICE_REMOVED。 如果发生此错误,应销毁并重新创建设备。
- 如果无法从当前上下文调用 CreateDeferredContext2 方法,则返回DXGI_ERROR_INVALID_CALL。 例如,如果设备是使用 D3D11_CREATE_DEVICE_SINGLETHREADED 值创建的, 则 CreateDeferredContext2 将返回 DXGI_ERROR_INVALID_CALL。
- 如果 ContextFlags 参数无效,则返回E_INVALIDARG。
- 如果应用已耗尽可用内存,则返回 E_OUTOFMEMORY 。
备注
延迟上下文是线程安全上下文,可用于在main呈现线程以外的线程上记录图形命令。 通过使用延迟上下文,可以将图形命令记录到 ID3D11CommandList 接口封装的命令列表中。 录制所有场景项后,可以将它们提交到main呈现线程以进行最终呈现。 通过这种方式,可以跨多个线程并发执行呈现任务,并有可能提高多核 CPU 方案中的性能。
可以创建多个延迟的上下文。
注意 如果使用 D3D11_CREATE_DEVICE_SINGLETHREADED 值创建设备, 则 CreateDeferredContext2 将失败并 DXGI_ERROR_INVALID_CALL,并且无法创建延迟的上下文。
要求
最低受支持的客户端 | Windows 8.1 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2012 R2 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | d3d11_2.h |
Library | D3D11.lib |
另请参阅
ID3D11Device1::CreateDeferredContext1