Metodo ID3D11On12Device2::UnwrapUnderlyingResource (d3d11on12.h)
Annulla il wrapping di un oggetto risorsa Direct3D 11 e lo recupera come oggetto risorsa Direct3D 12.
Sintassi
HRESULT UnwrapUnderlyingResource(
[in] ID3D11Resource *pResource11,
[in] ID3D12CommandQueue *pCommandQueue,
[in] REFIID riid,
[out] void **ppvResource12
);
Parametri
[in] pResource11
Tipo: ID3D11Resource*
Oggetto risorsa Direct3D 11 da annullare.
[in] pCommandQueue
Tipo: ID3D12CommandQueue*
Coda dei comandi in cui l'applicazione prevede di usare la risorsa. Qualsiasi lavoro in sospeso che accede alla risorsa causa la pianificazione delle attese di isolamento in questa coda. È quindi possibile accodare ulteriori operazioni su questa coda, incluso un segnale su un recinto di proprietà del chiamante.
[in] riid
Tipo: REFIID
Riferimento all'identificatore univoco globale (GUID) dell'interfaccia da restituire in ppvResource12
.
[out] ppvResource12
Tipo: void**
Puntatore a un blocco di memoria che riceve un puntatore alla risorsa Direct3D 12.
Valore restituito
Se la funzione ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT.
Osservazioni
La risorsa viene passata a D3D12_RESOURCE_STATE_COMMON (se non è già in questo stato) e le attese appropriate vengono inserite nella coda dei comandi (pCommandQueue).
Esistono alcune restrizioni su ciò che è possibile rimuovere dal wrapping: nessuna risorsa mutex con chiave, nessuna risorsa compatibile con GDI e nessun buffer. Tuttavia, è possibile usare unwrapUnderlyingResource per annullare il wrapping delle risorse create tramite il metodo ID3D11On12Device::CreateWrappedRe source, nonché le risorse create tramite ID3D11Device::CreateTexture2D.
In generale, è necessario restituire l'oggetto a Direct3D11on12 prima di usarlo di nuovo in Direct3D 11 (vedere ID3D11On12Device2::ReturnUnderlyingResource).
È anche possibile usare UnwrapUnderlyingResource per annullare il wrapping di un buffer swapchain. È anche necessario restituire la risorsa a Direct3D11on12 prima di chiamare Present (o in caso contrario, usando la risorsa).
Il wrapping di una risorsa estrae la risorsa dal livello di conversione Direct3D11On12. Non è possibile pianificare alcun utilizzo del livello di traduzione (tramite una delle due versioni dell'API) mentre la risorsa viene estratta. Controllare nuovamente la risorsa (nota anche come restituendo risorsa) con ID3D11On12Device2::ReturnUnderlyingResource.
l' UnwrapUnderlyingResource non viene scaricato e potrebbe pianificare il lavoro della GPU. È consigliabile scaricare dopo aver chiamato UnwrapUnderlyingResource se si attende esternamente il completamento.
Fabbisogno
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 |
d3d11on12.h |
libreria |
D3D11.lib |
dll | D3D11.dll |