Metodo ID3D12Device8::CreatePlacedResource1 (d3d12.h)
Crea una risorsa inserita in un heap specifico. Le risorse inserite sono gli oggetti risorsa più leggeri disponibili e sono i più veloci da creare e distruggere.
L'applicazione può riutilizzare la memoria video sovrapponendo più risorse direct3D inserite e riservate nelle aree heap. Il modello di riutilizzo della memoria semplice (descritto in osservazioni) esiste per chiarire quale risorsa sovrapposta è valida in qualsiasi momento. Per ottimizzare il supporto degli strumenti grafici, con la semplice ereditarietà dei dati del modello non è supportata; non sono supportati riquadri con granularità fine e invalidazione della sotto-risorsa. Si verifica solo l'invalidazione completa delle risorse sovrapposte.
Sintassi
HRESULT CreatePlacedResource1(
ID3D12Heap *pHeap,
UINT64 HeapOffset,
const D3D12_RESOURCE_DESC1 *pDesc,
D3D12_RESOURCE_STATES InitialState,
const D3D12_CLEAR_VALUE *pOptimizedClearValue,
REFIID riid,
void **ppvResource
);
Parametri
pHeap
Tipo: [in] ID3D12Heap*
Puntatore all'interfaccia ID3D12Heap che rappresenta l'heap in cui viene inserita la risorsa.
HeapOffset
Offset, in byte, alla risorsa. Il HeapOffset deve essere un multiplo dell'allineamento della risorsa e heapOffset più le dimensioni della risorsa devono essere inferiori o uguali alle dimensioni dell'heap. GetResourceAllocationInfo per comprendere le dimensioni delle risorse della trama.
pDesc
Tipo: [in] const D3D12_RESOURCE_DESC1*
Puntatore a una struttura D3D12_RESOURCE_DESC1 che descrive la risorsa, inclusa un'area mip.
InitialState
Tipo: D3D12_RESOURCE_STATES
Stato iniziale della risorsa, come combinazione or bit per bit di costanti di enumerazione D3D12_RESOURCE_STATES.
Quando una risorsa viene creata insieme a un heap D3D12_HEAP_TYPE_UPLOAD, InitialState deve essere D3D12_RESOURCE_STATE_GENERIC_READ. Quando una risorsa viene creata insieme a un heap D3D12_HEAP_TYPE_READBACK, InitialState deve essere D3D12_RESOURCE_STATE_COPY_DEST.
pOptimizedClearValue
Tipo: [in, facoltativo] const D3D12_CLEAR_VALUE*
Specifica un D3D12_CLEAR_VALUE che descrive il valore predefinito per un colore chiaro.
pOptimizedClearValue specifica un valore per cui le operazioni non crittografate sono ottimali. Quando la risorsa creata è una trama con i flag D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET o D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL, l'applicazione deve scegliere il valore con cui verrà chiamata l'operazione non crittografata.
Le operazioni di cancellazione possono essere chiamate con altri valori, ma tali operazioni non saranno altrettanto efficienti come quando il valore corrisponde a quello passato alla creazione di risorse.
pOptimizedClearValue deve essere NULL se usato con D3D12_RESOURCE_DIMENSION_BUFFER.
riid
Tipo: REFIID
Identificatore univoco globale (GUID) per l'interfaccia della risorsa. Si tratta di un parametro di input.
È possibile ottenere REFIIDo GUIDdell'interfaccia alla risorsa usando la macro __uuidof
. Ad esempio, __uuidof(ID3D12Resource)
ottiene il GUID dell'interfaccia a una risorsa. Anche se riid è, in genere, il GUID per ID3D12Resource, può essere qualsiasi GUID per qualsiasi interfaccia. Se l'oggetto risorsa non supporta l'interfaccia per questo GUID , la creazione non riesce con E_NOINTERFACE.
ppvResource
Tipo: [out, facoltativo] void**
Puntatore a un blocco di memoria che riceve un puntatore alla risorsa. ppvResource può essere NULL per abilitare i test delle funzionalità. Quando ppvResource è NULL, non verrà creato alcun oggetto e S_FALSE verrà restituito quando pResourceDesc e altri parametri sono validi.
Valore restituito
Questo metodo restituisce E_OUTOFMEMORY se la memoria non è sufficiente per creare la risorsa. Per altri possibili valori restituiti, vedere Codici restituiti Direct3D 12.
Osservazioni
Vedere ID3D12Device::CreatePlacedResource.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 10 Build 20348 |
server minimo supportato | Windows 10 Build 20348 |
intestazione |
d3d12.h |
libreria |
d3d12.lib |
dll | d3d12.dll |