共用方式為


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

AcquireDirect3D12BufferResourceWithTimeout 方法會將 Direct3D 12 後台緩衝區資源的擁有權從平臺轉換至您的應用程式,等待到持續時間自變數所指出的時間量,讓資源可供使用。 如果您的應用程式已經擁有資源的控制權,則擷取會被視為成功,而且方法會立即傳回。

藉由呼叫 IHolographicQuadLayerUpdateParametersInterop::CommitDirect3D12Resource 將資源認可至 HolographicFrame 之後,您的應用程式應該考慮控制該資源,直到您的應用程式使用 AcquireDirect3D12BufferResourceWithTimeout 重新取得該資源為止。 系統會擁有緩衝區,直到已認可緩衝區的框架通過簡報佇列為止。 若要判斷系統是否具有緩衝區的已放棄控制權,請呼叫 AcquireDirect3D12BufferResourceAcquireDirect3D12BufferResourceWithTimeout。 如果應用程式準備好開始轉譯新的 HolographicFrame 時無法取得緩衝區,則您應該建立新的資源,並將它新增至緩衝區佇列,或等候緩衝區變成可用來限制佇列大小。

這個方法接受選擇性逾時值。 當 duration 自變數中有非零值時,系統會等候該毫秒讓緩衝區變成可用。 默認行為是不要等候。 當指定了零的逾時值且尚未準備好取得緩衝區時,方法呼叫會失敗,並出現錯誤碼 E_NOTREADY

語法

HRESULT AcquireDirect3D12BufferResourceWithTimeout(
  ID3D12Resource     *pResourceToAcquire,
  ID3D12CommandQueue *pCommandQueue,
  UINT64             duration
);

參數

pResourceToAcquire

類型: ID3D12Resource*

要取得的 Direct3D 12 資源。

pCommandQueue

類型: ID3D12CommandQueue*

Direct3D 12 命令佇列,用於在取得應用程式時轉換此資源的狀態。 取得資源時,資源會處於 D3D12_RESOURCE_STATE_COMMON 狀態。

duration

類型: UINT64

如果此參數設定為非零值,則呼叫會等候該時間量取得緩衝區。 如果在取得緩衝區之前經過逾時期間,方法將會失敗,並出現錯誤碼 E_TIMEOUT。 此參數是以 100 奈秒的單位指定,類似於 TimeSpan.Duration 字段。

傳回值

如果 成功,S_OK,否則會傳回 HRESULT 錯誤碼,指出失敗的原因。 另請參閱 COM 錯誤碼 (UI、音訊、DirectX、編解碼器)

規格需求

需求
最低支援的用戶端 Windows 10 版本 2004 (10.0;組建 19041)
最低支援的伺服器 Windows Server 版本 2004 (10.0;組建 19041)
標頭 windows.graphics.holographic.interop.h