Método IHolographicCameraInterop::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 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 pertenece al sistema hasta que la aplicación vuelva a adquirirla mediante AcquireDirect3D12BufferResourceWithTimeout. El sistema posee el búfer hasta que el marco en el que se confirmó el búfer pasa por la cola de presentación. 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 cuando la aplicación está lista para empezar a representar un nuevo HolographicFrame, 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 hay un valor distinto de cero en el argumento duration , el sistema espera a que haya disponibles 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.

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. El recurso estará en el estado D3D12_RESOURCE_STATE_COMMON cuando se adquiera.

duration

Tipo: UINT64

Si este parámetro se establece en un valor distinto de cero, 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 producirá un error en el método con el código de error E_TIMEOUT. Este parámetro se especifica 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).

Requisitos

Requisito Value
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