Método IHolographicQuadLayerInterop::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 ainda 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 a ser renunciado ao sistema até que ele seja readquirido pelo aplicativo usando AcquireDirect3D12BufferResourceWithTimeout. O sistema possui o buffer até que ele não seja mais necessário para apresentar a camada quad. 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 uma nova atualização para a camada quad, 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. O recurso estará no estado D3D12_RESOURCE_STATE_COMMON quando for 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.
duration
Tipo: UINT64
Se esse parâmetro for definido, a chamada aguardará esse período de tempo 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 está em unidades de 100 nanossegundos, semelhante ao campo TimeSpan.Duration .
Valor retornado
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).
Quando nenhum valor de tempo limite for especificado, se esse método for chamado e o buffer não estiver pronto para ser adquirido, a chamada de método falhará com o código de erro E_NOTREADY.
Requisitos
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 |