Condividi tramite


Metodo IHolographicQuadLayerInterop::AcquireDirect3D12BufferResourceWithTimeout (windows.graphics.holographic.interop.h)

Il metodo AcquireDirect3D12BufferResourceWithTimeout esegue la transizione della proprietà di una risorsa di buffer back Direct3D 12 dalla piattaforma all'applicazione, in attesa fino alla quantità di tempo indicata dall'argomento durata per la disponibilità della risorsa. Se l'applicazione è già proprietaria del controllo della risorsa, l'acquisizione viene comunque considerata un esito positivo e il metodo restituisce immediatamente.

Dopo aver eseguito il commit di una risorsa in un HolographicFrame chiamando IHolographicQuadLayerUpdateParametersInterop::CommitDirect3D12Resource, l'applicazione deve prendere in considerazione il controllo di tale risorsa per essere riabilitato nel sistema fino a quando non viene riacquisito dall'applicazione usando AcquireDirect3D12BufferResourceWithTimeout. Il sistema possiede il buffer finché non è più necessario per presentare il livello quad. Per determinare se il sistema ha rilinquished il controllo del buffer, chiamare AcquireDirect3D12BufferResource o AcquireDirect3D12BufferResourceWithTimeout. Se il buffer non può essere acquisito dal momento in cui l'applicazione è pronta per avviare il rendering di un nuovo aggiornamento per il livello quad, è necessario creare una nuova risorsa e aggiungerla alla coda del buffer oppure limitare le dimensioni della coda attendendo che un buffer diventi disponibile.

Questo metodo accetta un valore di timeout facoltativo. Quando un valore diverso da zero è presente nell'argomento durata , il sistema attende che il buffer diventi disponibile per molti millisecondi. Il comportamento predefinito non prevede l'attesa. Quando viene specificato un valore di timeout pari a zero e il buffer non è pronto per l'acquisizione, la chiamata al metodo ha esito negativo con il codice di errore E_NOTREADY.

Sintassi

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

Parametri

pResourceToAcquire

Tipo: ID3D12Resource*

Risorsa Direct3D 12 da acquisire. La risorsa sarà nello stato D3D12_RESOURCE_STATE_COMMON quando viene acquisita.

pCommandQueue

Tipo: ID3D12CommandQueue*

Coda dei comandi Direct3D 12 da usare per la transizione dello stato di questa risorsa durante l'acquisizione per l'applicazione.

duration

Tipo: UINT64

Se questo parametro è impostato, la chiamata attenderà la quantità di tempo per l'acquisizione del buffer. Se il periodo di timeout è trascorso prima che il buffer possa essere acquisito, il metodo ha esito negativo con il codice di errore E_TIMEOUT. Questo parametro è espresso in unità di 100 nanosecondi, simili al campo TimeSpan.Duration .

Valore restituito

S_OK in caso di esito positivo, in caso contrario restituisce un codice di errore HRESULT che indica il motivo dell'errore. Vedi anche Codici di errore COM (interfaccia utente, audio, DirectX, codec).

Quando non viene specificato alcun valore di timeout, se questo metodo viene chiamato e il buffer non è pronto per l'acquisizione, la chiamata al metodo avrà esito negativo con il codice di errore E_NOTREADY.

Requisiti

   
Client minimo supportato Windows 10 versione 2004 (10.0; Build 19041)
Server minimo supportato Windows Server, versione 2004 (10.0; Build 19041)
Intestazione windows.graphics.holographic.interop.h

Vedi anche

AcquireDirect3D12BufferResource