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 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.
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 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_DESC1*
Ein Zeiger auf eine D3D12_RESOURCE_DESC1 Struktur, die die Ressource beschreibt, einschließlich eines Mip-Bereichs.
InitialState
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 InitialState-D3D12_RESOURCE_STATE_GENERIC_READwerden. Wenn eine Ressource zusammen mit einem D3D12_HEAP_TYPE_READBACK Heap erstellt wird, muss InitialState-D3D12_RESOURCE_STATE_COPY_DESTsein.
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.
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 ID3D12Device::CreatePlacedResource.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 10 Build 20348 |
mindestens unterstützte Server- | Windows 10 Build 20348 |
Header- | d3d12.h |
Library | d3d12.lib |
DLL- | d3d12.dll |