Freigeben über


ID3D12Device10::CreatePlacedResource2-Methode (d3d12.h)

Erstellt eine Ressource, die in einem bestimmten Heap platziert wird. Platzierte Ressourcen sind die leichtesten verfügbaren Ressourcenobjekte und sind am schnellsten zu erstellen und zu zerstören.

Ihre Anwendung kann den Videospeicher wiederverwenden, indem sie mehrere Direct3D-Platzierte und reservierte Ressourcen in Heap-Regionen überlappen. Das modell für die erneute Verwendung des einfachen Arbeitsspeichers (in Anmerkungenbeschrieben) besteht darin, zu klären, welche ü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 eine ungültige Unterressource wird nicht unterstützt. Es tritt nur eine vollständige überlappende Ressourceninvaligierung 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 wird.

HeapOffset

Typ: UINT64-

Der Offset in Byte zur Ressource. Die HeapOffset- muss ein Vielfaches der Ausrichtung der Ressource sein, und HeapOffset- und die Ressourcengröße muss kleiner oder gleich der Heapgröße sein. GetResourceAllocationInfo- muss verwendet werden, um die Größe von Texturressourcen zu verstehen.

pDesc

Typ: [in] 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 klare Vorgänge am besten geeignet 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 Wert übereinstimmt, der an die Ressourcenerstellung übergeben wird.

pOptimizedClearValue muss NULL sein, wenn sie mit D3D12_RESOURCE_DIMENSION_BUFFERverwendet wird.

NumCastableFormats

Die Anzahl der Elemente in pCastableFormats.

pCastableFormats

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

riid

Typ: REFIID-

Der global eindeutige Bezeichner (GUID) für die Ressourcenschnittstelle. Dies ist ein Eingabeparameter.

Die REFIIDoder GUID-der Schnittstelle zur Ressource kann mithilfe des __uuidof-Makros abgerufen werden. Beispielsweise ruft __uuidof(ID3D12Resource) die GUID- der Schnittstelle zu einer Ressource ab. Obwohl riid ist, ist die GUID für ID3D12Resource-, kann es sich um eine beliebige GUID- für jede Schnittstelle sein. Wenn das Ressourcenobjekt die Schnittstelle für diese GUID-nicht unterstützt, schlägt die Erstellung mit E_NOINTERFACEfehl.

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 aktivieren. 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.

Bemerkungen

Siehe Hinweise für ID3D12Device::CreatePlacedResource.

Anforderungen

Anforderung Wert
Zielplattform- Fenster
Header- d3d12.h
Library D3d12.lib
DLL- D3d12.dll

Siehe auch

CreateCommittedResource-

CreateReservedResource-

ID3D12Device10

Freigegebene Heaps