Condividi tramite


Metodo ID3D12Device10::CreatePlacedResource2 (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.

Richiede DirectX 12 Agility SDK 1.7 o versione successiva.

Sintassi

HRESULT CreatePlacedResource2(
  ID3D12Heap                 *pHeap,
  UINT64                     HeapOffset,
  const D3D12_RESOURCE_DESC1 *pDesc,
  D3D12_BARRIER_LAYOUT       InitialLayout,
  const D3D12_CLEAR_VALUE    *pOptimizedClearValue,
  UINT32                     NumCastableFormats,
  const DXGI_FORMAT          *pCastableFormats,
  REFIID                     riid,
  void                       **ppvResource
);

Parametri

pHeap

Tipo: [in] ID3D12Heap*

Puntatore all'interfaccia ID3D12Heap che rappresenta l'heap in cui viene inserita la risorsa.

HeapOffset

Tipo: UINT64

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_DESC*

Puntatore a una struttura D3D12_RESOURCE_DESC che descrive la risorsa.

InitialLayout

Layout iniziale della risorsa trama; D3D12_BARRIER_LAYOUT::D 3D12_BARRIER_LAYOUT_UNDEFINED per i buffer.

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.

NumCastableFormats

Numero di elementi in pCastableFormats.

pCastableFormats

Matrice contigua di strutture DXGI_FORMAT a cui è possibile eseguire il cast di questa risorsa.

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

Tipo: HRESULT

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 osservazioni per ID3D12Device::CreatePlacedResource.

Fabbisogno

Requisito Valore
piattaforma di destinazione Finestre
intestazione d3d12.h
libreria D3d12.lib
dll D3d12.dll

Vedere anche

CreateCommittedResource

CreateReservedResource

ID3D12Device10

heap condivisi