Метод 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 |