Compartilhar via


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