Metodo ID3D12Device4::CreateReservedResource1 (d3d12.h)
Crea una risorsa (facoltativamente per una sessione protetta) riservata e non ancora mappata a qualsiasi pagina in un heap. Vedere anche ID3D12Device::CreateReservedResource.
Nota
È possibile eseguire il mapping solo dei riquadri di heaps creati con la stessa sessione di risorse protetta in una risorsa riservata protetta.
Sintassi
HRESULT CreateReservedResource1(
[in] const D3D12_RESOURCE_DESC *pDesc,
[in] D3D12_RESOURCE_STATES InitialState,
[in, optional] const D3D12_CLEAR_VALUE *pOptimizedClearValue,
[in, optional] ID3D12ProtectedResourceSession *pProtectedSession,
[in] REFIID riid,
[out, optional] void **ppvResource
);
Parametri
[in] pDesc
Tipo: const D3D12_RESOURCE_DESC*
Puntatore a una struttura D3D12_RESOURCE_DESC che descrive la risorsa.
[in] InitialState
Tipo: D3D12_RESOURCE_STATES
Stato iniziale della risorsa, come combinazione bit per bit-OR di costanti di enumerazione D3D12_RESOURCE_STATES .
[in, optional] pOptimizedClearValue
Tipo: const D3D12_CLEAR_VALUE*
Specifica una struttura D3D12_CLEAR_VALUE che descrive il valore predefinito per un colore chiaro.
pOptimizedClearValue specifica un valore per il quale le operazioni chiare sono più ottimali. Quando la risorsa creata è una trama con i flag di D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET o di D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL, è consigliabile scegliere il valore con cui verrà chiamata l'operazione chiara. È possibile chiamare l'operazione chiara con altri valori, ma queste operazioni non saranno più efficienti come quando il valore corrisponde a quello passato alla creazione di risorse.
Quando si usa D3D12_RESOURCE_DIMENSION_BUFFER, è necessario impostare pOptimizedClearValue su nullptr
.
[in, optional] pProtectedSession
Tipo: ID3D12ProtectedResourceSession*
Puntatore facoltativo a un oggetto che rappresenta una sessione per la protezione del contenuto. Se specificato, questa sessione indica che la risorsa deve essere protetta. È possibile ottenere un ID3D12ProtectedResourceSession chiamando ID3D12Device4::CreateProtectedResourceSession.
[in] riid
Tipo: REFIID
Riferimento all'identificatore univoco globale (GUID) dell'interfaccia di risorsa da restituire in ppvResource. Vedere Osservazioni.
Anche se riidResource è più comunemente il GUID di ID3D12Resource, può essere il GUID di qualsiasi interfaccia. Se l'oggetto risorsa non supporta l'interfaccia per questo GUID, la creazione non riesce con E_NOINTERFACE.
[out, optional] ppvResource
Tipo: void**
Puntatore facoltativo a un blocco di memoria che riceve il puntatore dell'interfaccia richiesto all'oggetto risorsa creato.
ppvResource può essere nullptr
, per abilitare i test delle funzionalità. Quando ppvResource è nullptr
, non viene creato alcun oggetto e S_FALSE viene restituito quando pDesc è valido.
Valore restituito
Tipo: HRESULT
Se la funzione ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di erroreHRESULT.
Valore restituito | Descrizione |
---|---|
E_OUTOFMEMORY | Memoria insufficiente per creare la risorsa. |
Vedere Codici restituiti Direct3D 12 per altri valori restituiti possibili.
Commenti
CreateReservedResource equivale a D3D11_RESOURCE_MISC_TILED in Direct3D 11. Crea una risorsa solo con memoria virtuale, nessun archivio di backup.
È necessario eseguire il mapping della risorsa alla memoria fisica , ovvero a un heap, usando CopyTileMappings e UpdateTileMappings.
Questi tipi di risorse possono essere creati solo quando l'adapter supporta il livello di risorsa riquadri 1 o versione successiva. Il livello di risorsa riquadri definisce il comportamento di accesso a una risorsa non mappata a un heap.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 10 Build 20348 |
Server minimo supportato | Windows 10 Build 20348 |
Piattaforma di destinazione | Windows |
Intestazione | d3d12.h |
Libreria | d3d12.lib |
DLL | d3d12.dll |