Compartir a través de


Método IHolographicQuadLayerInterop::AcquireDirect3D12BufferResourceWithTimeout (windows.graphics.holographic.interop.h)

El método AcquireDirect3D12BufferResourceWithTimeout realiza la transición de la propiedad de un recurso de búfer de reserva de Direct3D 12 desde la plataforma a la aplicación, esperando hasta la cantidad de tiempo indicado por el argumento de duración para que el recurso esté disponible. Si la aplicación ya posee el control del recurso, la adquisición todavía se considera correcta y el método devuelve inmediatamente.

Después de confirmar un recurso en un HolographicFrame mediante una llamada a IHolographicQuadLayerUpdateParametersInterop::CommitDirect3D12Resource, la aplicación debe considerar el control de ese recurso que se va a renunciar al sistema hasta que la aplicación vuelva a adquirirla mediante AcquireDirect3D12BufferResourceWithTimeout. El sistema posee el búfer hasta que ya no es necesario para presentar la capa cuádruple. Para determinar si el sistema ha renunciado al control del búfer, llame a AcquireDirect3D12BufferResource o AcquireDirect3D12BufferResourceWithTimeout. Si el búfer no se puede adquirir en el momento en que la aplicación está lista para empezar a representar una nueva actualización para la capa cuádruple, debe crear un nuevo recurso y agregarlo a la cola del búfer o limitar el tamaño de la cola esperando a que un búfer esté disponible.

Este método acepta un valor de tiempo de espera opcional. Cuando un valor distinto de cero está presente en el argumento duration , el sistema espera a que haya muchos milisegundos para que el búfer esté disponible. El comportamiento predeterminado es no esperar. Cuando se especifica un valor de tiempo de espera de cero y el búfer no está listo para adquirirse, se produce un error en la llamada al método con el código de error E_NOTREADY.

Sintaxis

HRESULT AcquireDirect3D12BufferResourceWithTimeout(
  ID3D12Resource     *pResourceToAcquire,
  ID3D12CommandQueue *pCommandQueue,
  UINT64             duration
);

Parámetros

pResourceToAcquire

Tipo: ID3D12Resource*

Recurso de Direct3D 12 que se va a adquirir. El recurso estará en el estado D3D12_RESOURCE_STATE_COMMON cuando se adquiera.

pCommandQueue

Tipo: ID3D12CommandQueue*

La cola de comandos de Direct3D 12 que se va a usar para realizar la transición del estado de este recurso al adquirirlo para la aplicación.

duration

Tipo: UINT64

Si se establece este parámetro, la llamada esperará esa cantidad de tiempo para que se adquiera el búfer. Si el período de tiempo de espera transcurre antes de que se pueda adquirir el búfer, se produce un error en el método con el código de error E_TIMEOUT. Este parámetro está en unidades de 100 nanosegundos, similar al campo TimeSpan.Duration .

Valor devuelto

S_OK si se ejecuta correctamente; de lo contrario, devuelve un código de error HRESULT que indica el motivo del error. Consulte también Códigos de error COM (UI, Audio, DirectX, Codec).

Cuando no se especifica ningún valor de tiempo de espera, si se llama a este método y el búfer no está listo para adquirirse, se producirá un error en la llamada al método con el código de error E_NOTREADY.

Requisitos

   
Cliente mínimo compatible Windows 10, versión 2004 (10.0; Compilación 19041)
Servidor mínimo compatible Windows Server, versión 2004 (10.0; Compilación 19041)
Encabezado windows.graphics.holographic.interop.h

Consulte también

AcquireDirect3D12BufferResource