Método IHolographicCameraInterop::AcquireDirect3D12BufferResourceWithTimeout (windows.graphics.holographic.interop.h)
O método AcquireDirect3D12BufferResourceWithTimeout faz a transição da propriedade de um recurso de buffer de back do Direct3D 12 da plataforma para o aplicativo, aguardando até o tempo indicado pelo argumento duration para que o recurso fique disponível. Se o aplicativo já tiver o controle do recurso, a aquisição será considerada um sucesso e o método retornará imediatamente.
Depois de confirmar um recurso para um HolographicFrame chamando IHolographicQuadLayerUpdateParametersInterop::CommitDirect3D12Resource, seu aplicativo deve considerar o controle desse recurso para pertencer ao sistema até que ele seja requisitar pelo aplicativo usando AcquireDirect3D12BufferResourceWithTimeout. O sistema possui o buffer até que o quadro no qual o buffer foi confirmado passe pela fila de apresentação. Para determinar se o sistema abriu mão do controle do buffer, chame AcquireDirect3D12BufferResource ou AcquireDirect3D12BufferResourceWithTimeout. Se o buffer não puder ser adquirido quando o aplicativo estiver pronto para começar a renderizar um novo HolographicFrame, você deverá criar um novo recurso e adicioná-lo à fila de buffers ou limitar o tamanho da fila aguardando que um buffer fique disponível.
Esse método aceita um valor de tempo limite opcional. Quando um valor diferente de zero está presente no argumento duration , o sistema aguarda que muitos milissegundos para que o buffer fique disponível. O comportamento padrão é não esperar. Quando um valor de tempo limite de zero é especificado e o buffer não está pronto para ser adquirido, a chamada de método falha com o código de erro E_NOTREADY.
Sintaxe
HRESULT AcquireDirect3D12BufferResourceWithTimeout(
ID3D12Resource *pResourceToAcquire,
ID3D12CommandQueue *pCommandQueue,
UINT64 duration
);
Parâmetros
pResourceToAcquire
Tipo: ID3D12Resource*
O recurso Direct3D 12 a ser adquirido.
pCommandQueue
Tipo: ID3D12CommandQueue*
A fila de comandos do Direct3D 12 a ser usada para fazer a transição do estado desse recurso ao adquiri-lo para seu aplicativo. O recurso estará no estado D3D12_RESOURCE_STATE_COMMON quando for adquirido.
duration
Tipo: UINT64
Se esse parâmetro for definido como um valor diferente de zero, a chamada aguardará esse período para que o buffer seja adquirido. Se o período de tempo limite decorrer antes que o buffer possa ser adquirido, o método falhará com o código de erro E_TIMEOUT. Esse parâmetro é especificado em unidades de 100 nanossegundos, semelhante ao campo TimeSpan.Duration .
Retornar valor
S_OK se tiver êxito, caso contrário, retornará um código de erro HRESULT indicando o motivo da falha. Consulte também Códigos de erro COM (interface do usuário, áudio, DirectX, Codec).
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 10, versão 2004 (10.0; Build 19041) |
Servidor mínimo com suporte | Windows Server, versão 2004 (10.0; Build 19041) |
Cabeçalho | windows.graphics.holographic.interop.h |