Condividi tramite


Metodo IHolographicCameraInterop::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 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 considerare il controllo di tale risorsa come di proprietà del sistema fino a quando non viene riacquisiti dall'applicazione usando AcquireDirect3D12BufferResourceWithTimeout. Il sistema è proprietario del buffer fino a quando il frame di cui è stato eseguito il commit nel buffer passa attraverso la coda di presentazione. 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 HolographicFrame, è 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 non riesce 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.

pCommandQueue

Tipo: ID3D12CommandQueue*

Coda dei comandi Direct3D 12 da usare per la transizione dello stato di questa risorsa durante l'acquisizione per l'applicazione. La risorsa sarà nello stato D3D12_RESOURCE_STATE_COMMON quando viene acquisita.

duration

Tipo: UINT64

Se questo parametro è impostato su un valore diverso da zero, la chiamata attenderà l'intervallo di tempo per l'acquisizione del buffer. Se il periodo di timeout è trascorso prima che il buffer possa essere acquisito, il metodo avrà esito negativo con il codice di errore E_TIMEOUT. Questo parametro viene specificato 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).

Requisiti

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