Compartilhar via


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

Confira também

AcquireDirect3D12BufferResource