IHolographicCameraInterop::AcquireDirect3D12BufferResource 方法 (windows.graphics.holographic.interop.h)

AcquireDirect3D12BufferResource 方法将 Direct3D 12 后台缓冲区资源的所有权从平台转移到应用程序。 如果应用程序已拥有资源的控制权,则购置仍被视为成功。

通过调用 IHolographicQuadLayerUpdateParametersInterop::CommitDirect3D12Resource 将资源提交到 HolographicFrame 后,应用程序应考虑控制由系统拥有的资源,直到应用程序使用此方法重新获取资源为止。 系统拥有缓冲区,直到提交缓冲区通过演示队列的帧。 若要确定系统是否已放弃对缓冲区的控制权,请调用 AcquireDirect3D12BufferResourceAcquireDirect3D12BufferResourceWithTimeout。 如果在应用程序准备好开始呈现新的 全息帧时无法获取缓冲区,则应创建一个新资源并将其添加到缓冲区队列,或通过等待缓冲区变得可用来限制队列大小。

如果在调用 AcquireDirect3D12BufferResource 时尚未准备好获取缓冲区,则方法调用将失败,并立即 E_NOTREADY返回错误代码。

应用程序可以通过调用 AcquireDirect3D12BufferResourceWithTimeout 来限制队列大小,以等待资源变得可用,然后再排队完成更多工作。

语法

HRESULT AcquireDirect3D12BufferResource(
  ID3D12Resource     *pResourceToAcquire,
  ID3D12CommandQueue *pCommandQueue
);

参数

pResourceToAcquire

类型: ID3D12Resource*

要获取的 Direct3D 12 资源。

pCommandQueue

类型: ID3D12CommandQueue*

Direct3D 12 命令队列,用于在为应用程序获取此资源时转换此资源的状态。 获取资源时,资源将处于 D3D12_RESOURCE_STATE_COMMON 状态。 如果获取资源时资源已处于通用状态,则资源转换命令可能不会排队。

返回值

如果 成功,S_OK,否则返回指示失败原因的 HRESULT 错误代码。 另请参阅 COM 错误代码 (UI、音频、DirectX、编解码器)

要求

   
最低受支持的客户端 Windows 10,版本 2004 (10.0;内部版本 19041)
最低受支持的服务器 Windows Server 版本 2004 (10.0;内部版本 19041)
标头 windows.graphics.holographic.interop.h