Share via


ID3D12Device8::CreatePlacedResource1-Methode (d3d12.h)

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

Ihre Anwendung kann den Videospeicher wiederverwenden, indem mehrere Direct3D-platzierte und reservierte Ressourcen in Heapregionen überlappen. Das einfache Wiederverwendungsmodell des Arbeitsspeichers (siehe Hinweise) 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 differenziertere Kachel- und Unterressourceninvalidierung wird nicht unterstützt. Es tritt nur eine vollständige überlappende Ressourceninvalidierung auf.

Syntax

HRESULT CreatePlacedResource1(
  ID3D12Heap                 *pHeap,
  UINT64                     HeapOffset,
  const D3D12_RESOURCE_DESC1 *pDesc,
  D3D12_RESOURCE_STATES      InitialState,
  const D3D12_CLEAR_VALUE    *pOptimizedClearValue,
  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 Bytes auf die Ressource. Das HeapOffset muss ein Vielfaches der Ausrichtung der Ressource sein, und HeapOffset und die Ressourcengröße müssen kleiner oder gleich der Heapgröße sein. GetResourceAllocationInfo muss verwendet werden, um die Größe der Texturressourcen zu verstehen.

pDesc

Typ: [in] const D3D12_RESOURCE_DESC1*

Ein Zeiger auf eine D3D12_RESOURCE_DESC1 Struktur, die die Ressource beschreibt, einschließlich einer MIP-Region.

InitialState

Typ: D3D12_RESOURCE_STATES

Der Anfangszustand der Ressource als bitweise OR'd-Kombination aus D3D12_RESOURCE_STATES Enumerationskonstanten.

Wenn eine Ressource zusammen mit einem D3D12_HEAP_TYPE_UPLOAD Heap erstellt wird, muss InitialStateD3D12_RESOURCE_STATE_GENERIC_READ werden. Wenn eine Ressource zusammen mit einem D3D12_HEAP_TYPE_READBACK Heap erstellt wird, muss InitialStateD3D12_RESOURCE_STATE_COPY_DEST werden.

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 optimal sind. Wenn es sich bei der erstellten Ressource um eine Textur mit dem D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET - oder D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL-Flags handelt, 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 an die Ressourcenerstellung übergebenen Wert übereinstimmt.

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

riid

Typ: REFIID

Der globally unique Identifier (GUID) 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. Riid ist zwar am häufigsten die GUID für ID3D12Resource, kann jedoch 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_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 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 .

Hinweise

Siehe ID3D12Device::CreatePlacedResource.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 10 Build 20348
Unterstützte Mindestversion (Server) Windows 10 Build 20348
Kopfzeile d3d12.h
Bibliothek d3d12.lib
DLL d3d12.dll

Weitere Informationen