ID3D11Device1::CreateDeferredContext1 方法 (d3d11_1.h)

创建可以记录命令列表的延迟上下文。

语法

HRESULT CreateDeferredContext1(
                  UINT                 ContextFlags,
  [out, optional] ID3D11DeviceContext1 **ppDeferredContext
);

参数

ContextFlags

保留供将来使用。 传递 0。

[out, optional] ppDeferredContext

方法完成后,将初始化指向 ID3D11DeviceContext1 接口指针的传递指针。

返回值

如果成功,则返回S_OK;否则, 返回下列值之一:

  • 如果图形适配器已从计算机中物理移除,或者图形适配器的驱动程序升级已发生,则返回 DXGI_ERROR_DEVICE_REMOVED 。 如果发生此错误,应销毁并重新创建设备。
  • 如果无法从当前上下文调用 CreateDeferredContext1 方法,则返回DXGI_ERROR_INVALID_CALL。 例如,如果使用 D3D11_CREATE_DEVICE_SINGLETHREADED 值创建设备, 则 CreateDeferredContext1 将返回 DXGI_ERROR_INVALID_CALL
  • 如果 ContextFlags 参数无效,则返回E_INVALIDARG
  • 如果应用程序已耗尽可用内存,则返回 E_OUTOFMEMORY

备注

延迟上下文是线程安全上下文,可用于在main呈现线程以外的线程上记录图形命令。 通过使用延迟上下文,可以将图形命令记录到 ID3D11CommandList 接口封装的命令列表中。 录制所有场景项后,可以将它们提交到main呈现线程以进行最终呈现。 通过这种方式,可以跨多个线程并发执行呈现任务,并有可能提高多核 CPU 方案中的性能。

可以创建多个延迟的上下文。

注意 如果使用 D3D11_CREATE_DEVICE_SINGLETHREADED 值创建 ID3D11Device1 表示的设备, 则 CreateDeferredContext1 方法将失败,并且无法创建延迟的上下文。
 
有关延迟上下文的详细信息,请参阅 即时和延迟呈现

Windows Phone 8:支持此 API。

要求

   
最低受支持的客户端 适用于 Windows 7 的 Windows 8 和平台更新 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2012 和适用于 Windows Server 2008 R2 的平台更新 [桌面应用 |UWP 应用]
目标平台 Windows
标头 d3d11_1.h
Library D3D11.lib

另请参阅

ID3D11Device1

ID3D11Device2::CreateDeferredContext2

ID3D11Device3::CreateDeferredContext3

ID3D11Device::CreateDeferredContext