Share via


ID3D12Device10::CreatePlacedResource2-Methode (d3d12.h)

Erstellt eine Ressource, die in einem bestimmten Heap platziert wird. Platzierte Ressourcen sind die leichtesten verfügbaren Ressourcenobjekte und können am schnellsten erstellt und zerstört werden.

Ihre Anwendung kann den Videospeicher wiederverwenden, indem mehrere platzierte und reservierte Direct3D-Ressourcen in Heapregionen überlappen. Das einfache Speicherwiederverwendungsmodell (beschrieben in Den Hinweisen) dient dazu, zu klären, welche sich überlappende Ressource zu einem bestimmten Zeitpunkt gültig ist. Um die Unterstützung von Grafiktools zu maximieren, wird die Datenvererbung des einfachen Modells nicht unterstützt. und eine differenzierte Kachel- und Unterressourceninvalidierung wird nicht unterstützt. Es tritt nur eine vollständige überlappende Ressourceninvalidierung auf.

Erfordert das DirectX 12 Agility SDK 1.7 oder höher.

Syntax

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
);

Parameter

pHeap

Typ: [in] ID3D12Heap*

Ein Zeiger auf die ID3D12Heap-Schnittstelle , die den Heap darstellt, in dem die Ressource platziert ist.

HeapOffset

Typ: UINT64

Der Offset in Bytes für die Ressource. HeapOffset muss ein Vielfaches der Ausrichtung der Ressource sein, und HeapOffset plus die Ressourcengröße müssen kleiner oder gleich der Heapgröße sein. GetResourceAllocationInfo muss verwendet werden, um die Größe von Texturressourcen zu verstehen.

pDesc

Typ: [in] const D3D12_RESOURCE_DESC*

Ein Zeiger auf eine D3D12_RESOURCE_DESC Struktur, die die Ressource beschreibt.

InitialLayout

Das anfängliche Layout der Texturressource; D3D12_BARRIER_LAYOUT::D 3D12_BARRIER_LAYOUT_UNDEFINED für Puffer.

pOptimizedClearValue

Typ: [in, optional] const D3D12_CLEAR_VALUE*

Gibt einen D3D12_CLEAR_VALUE an, der den Standardwert für eine klare Farbe beschreibt.

pOptimizedClearValue gibt einen Wert an, für den Clear-Vorgänge optimal sind. Wenn die erstellte Ressource eine Textur mit dem D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET- oder D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL-Flags ist, sollte Ihre Anwendung den Wert auswählen, mit dem der Clear-Vorgang am häufigsten aufgerufen wird.

Clear-Vorgänge können mit anderen Werten aufgerufen werden, aber diese Vorgänge sind nicht so effizient wie wenn der Wert mit dem bei der Ressourcenerstellung übergebenen Wert übereinstimmt.

pOptimizedClearValue muss null sein, wenn es mit D3D12_RESOURCE_DIMENSION_BUFFER verwendet wird.

NumCastableFormats

Die Anzahl der Elemente in pCastableFormats.

pCastableFormats

Ein zusammenhängendes Array von DXGI_FORMAT Strukturen, in die diese Ressource umgewandelt werden kann.

riid

Typ: REFIID

Die GUID (Globally Unique Identifier) für die Ressourcenschnittstelle. Dies ist ein Eingabeparameter.

Die REFIID oder GUID der Schnittstelle zur Ressource kann mithilfe des __uuidof Makros abgerufen werden. Ruft beispielsweise __uuidof(ID3D12Resource) die GUID der Schnittstelle zu einer Ressource ab. Obwohl riid am häufigsten die GUID für ID3D12Resource ist, kann es sich um eine beliebige GUID für jede Schnittstelle handeln. Wenn das Ressourcenobjekt die Schnittstelle für diese GUID nicht unterstützt, schlägt die Erstellung mit E_NOINTERFACE fehl.

ppvResource

Typ: [out, optional] void**

Ein Zeiger auf einen Speicherblock, der einen Zeiger auf die Ressource empfängt. ppvResource kann NULL sein, um Funktionstests zu ermöglichen. Wenn ppvResource NULL ist, wird kein Objekt erstellt, und S_FALSE wird zurückgegeben, wenn pResourceDesc und andere Parameter gültig sind.

Rückgabewert

Typ: HRESULT

Diese Methode gibt E_OUTOFMEMORY zurück, wenn nicht genügend Arbeitsspeicher zum Erstellen der Ressource vorhanden ist. Weitere mögliche Rückgabewerte finden Sie unter Direct3D 12-Rückgabecodes .

Hinweise

Weitere Informationen finden Sie unter Hinweise zu ID3D12Device::CreatePlacedResource.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile d3d12.h
Bibliothek D3d12.lib
DLL D3d12.dll

Weitere Informationen

CreateCommittedResource

CreateReservedResource

ID3D12Geräte10

Freigegebene Heaps