ID3D12Device4::CreateReservedResource1-Methode (d3d12.h)
Erstellt eine Ressource (optional für eine geschützte Sitzung), die reserviert ist und noch keinen Seiten in einem Heap zugeordnet ist. Siehe auch ID3D12Device::CreateReservedResource.
Hinweis
Nur Kacheln aus Heaps, die mit derselben geschützten Ressourcensitzung erstellt wurden, können einer geschützten reservierten Ressource zugeordnet werden.
Syntax
HRESULT CreateReservedResource1(
[in] const D3D12_RESOURCE_DESC *pDesc,
[in] D3D12_RESOURCE_STATES InitialState,
[in, optional] const D3D12_CLEAR_VALUE *pOptimizedClearValue,
[in, optional] ID3D12ProtectedResourceSession *pProtectedSession,
[in] REFIID riid,
[out, optional] void **ppvResource
);
Parameter
[in] pDesc
Typ: const D3D12_RESOURCE_DESC*
Ein Zeiger auf eine D3D12_RESOURCE_DESC Struktur, die die Ressource beschreibt.
[in] InitialState
Der Anfangszustand der Ressource als bitweise OR'd-Kombination aus D3D12_RESOURCE_STATES Enumerationskonstanten.
[in, optional] pOptimizedClearValue
Typ: const D3D12_CLEAR_VALUE*
Gibt eine D3D12_CLEAR_VALUE-Struktur an, die 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, sollten Sie den Wert auswählen, mit dem der Clear-Vorgang am häufigsten aufgerufen wird. Sie können den Clear-Vorgang mit anderen Werten aufrufen, aber diese Vorgänge sind nicht so effizient, wie wenn der Wert mit dem an die Ressourcenerstellung übergebenen Wert übereinstimmt.
Wenn Sie D3D12_RESOURCE_DIMENSION_BUFFER verwenden, müssen Sie pOptimizedClearValue auf nullptr
festlegen.
[in, optional] pProtectedSession
Typ: ID3D12ProtectedResourceSession*
Ein optionaler Zeiger auf ein Objekt, das eine Sitzung zum Schutz von Inhalten darstellt. Falls angegeben, gibt diese Sitzung an, dass die Ressource geschützt werden soll. Sie können eine ID3D12ProtectedResourceSession abrufen, indem Sie ID3D12Device4::CreateProtectedResourceSession aufrufen.
[in] riid
Typ: REFIID
Ein Verweis auf den Globally Unique Identifier (GUID) der Ressourcenschnittstelle, die in ppvResource zurückgegeben werden soll. Siehe Hinweise.
RiidResource ist zwar am häufigsten die GUID von ID3D12Resource, kann jedoch die GUID einer beliebigen Schnittstelle sein. Wenn das Ressourcenobjekt die Schnittstelle für diese GUID nicht unterstützt, schlägt die Erstellung mit E_NOINTERFACE fehl.
[out, optional] ppvResource
Typ: void**
Ein optionaler Zeiger auf einen Speicherblock, der den angeforderten Schnittstellenzeiger auf das erstellte Ressourcenobjekt empfängt.
ppvResource kann sein nullptr
, um Funktionstests zu aktivieren. Wenn ppvResource ist nullptr
, wird kein Objekt erstellt, und S_FALSE wird zurückgegeben, wenn pDesc gültig ist.
Rückgabewert
Typ: HRESULT
Wenn die Funktion erfolgreich ist, gibt sie S_OK zurück. Andernfalls wird ein HRESULT-Fehlercode zurückgegeben.
Rückgabewert | BESCHREIBUNG |
---|---|
E_OUTOFMEMORY | Es ist nicht genügend Arbeitsspeicher vorhanden, um die Ressource zu erstellen. |
Weitere mögliche Rückgabewerte finden Sie unter Direct3D 12-Rückgabecodes .
Hinweise
CreateReservedResource entspricht D3D11_RESOURCE_MISC_TILED in Direct3D 11. Es erstellt eine Ressource nur mit virtuellem Arbeitsspeicher, ohne Sicherungsspeicher.
Sie müssen die Ressource mit CopyTileMappings und UpdateTileMappings dem physischen Arbeitsspeicher (d. h. einem Heap) zuordnen.
Diese Ressourcentypen können nur erstellt werden, wenn der Adapter gekachelte Ressourcenebene 1 oder höher unterstützt. Die gekachelte Ressourcenebene definiert das Verhalten des Zugriffs auf eine Ressource, die keinem Heap zugeordnet ist.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 10 Build 20348 |
Unterstützte Mindestversion (Server) | Windows 10 Build 20348 |
Zielplattform | Windows |
Kopfzeile | d3d12.h |
Bibliothek | d3d12.lib |
DLL | d3d12.dll |