Поделиться через


Метод IHolographicCameraInterop::AcquireDirect3D12BufferResourceWithTimeout (windows.graphics.holographic.interop.h)

Метод AcquireDirect3D12BufferResourceWithTimeout перемещает владение ресурсом обратного буфера Direct3D 12 с платформы на приложение, ожидая до времени, указанного аргументом длительности , чтобы ресурс стал доступен. Если приложение уже владеет контролем над ресурсом, приобретение считается успешным, и метод возвращается немедленно.

После фиксации ресурса в HolographicFrame путем вызова IHolographicQuadLayerUpdateParametersInterop::CommitDirect3D12Resource приложение должно рассмотреть возможность управления этим ресурсом, принадлежащим системе до тех пор, пока приложение не будет повторно запрашивать его с помощью AcquireDirect3D12BufferResourceWithTimeout. Система владеет буфером до тех пор, пока кадр, в который буфер был зафиксирован, не перейдет через очередь презентации. Чтобы определить, отказался ли система от управления буфером, вызовите Метод AcquireDirect3D12BufferResource или AcquireDirect3D12BufferResourceWithTimeout. Если буфер не может быть получен к тому времени, когда приложение будет готово к отрисовке нового голографического кадра, необходимо создать новый ресурс и добавить его в очередь буфера или ограничить размер очереди, дождавшись, пока буфер станет доступным.

Этот метод принимает необязательное значение времени ожидания. Если в аргументе 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, audio, DirectX, Codec).

Требования

Требование Значение
Минимальная версия клиента Windows 10, версия 2004 (10.0; Сборка 19041)
Минимальная версия сервера Windows Server версии 2004 (10.0; Сборка 19041)
Верхняя часть windows.graphics.holographic.interop.h