Share via


ID3D11On12Device2::UnwrapUnderlyingResource-Methode (d3d11on12.h)

Entpackt ein Direct3D 11-Ressourcenobjekt und ruft es als Direct3D 12-Ressourcenobjekt ab.

Syntax

HRESULT UnwrapUnderlyingResource(
  [in]  ID3D11Resource     *pResource11,
  [in]  ID3D12CommandQueue *pCommandQueue,
  [in]  REFIID             riid,
  [out] void               **ppvResource12
);

Parameter

[in] pResource11

Typ: ID3D11Resource*

Das zu entpackende Direct3D 11-Ressourcenobjekt.

[in] pCommandQueue

Typ: ID3D12CommandQueue*

Die Befehlswarteschlange, in der Ihre Anwendung die Ressource verwenden möchte. Alle ausstehenden Arbeiten, die auf die Ressource zugreifen, führen dazu, dass für diese Warteschlange umzäunte Wartezeiten geplant werden. Sie können dann weitere Arbeiten an dieser Warteschlange in die Warteschlange stellen, einschließlich eines Signals an einem Anrufer-eigenen Zaun.

[in] riid

Typ: REFIID

Ein Verweis auf die GUID (Globally Unique Identifier) der Schnittstelle, die in ppvResource12zurückgegeben werden soll.

[out] ppvResource12

Typ: void**

Ein Zeiger auf einen Speicherblock, der einen Zeiger auf die Direct3D 12-Ressource empfängt.

Rückgabewert

Typ: HRESULT

Wenn die Funktion erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein HRESULT-Fehlercode zurückgegeben.

Hinweise

Die Ressource wird in D3D12_RESOURCE_STATE_COMMON umgestellt (wenn sie sich noch nicht in diesem Zustand befand), und entsprechende Wartevorgänge werden in die Befehlswarteschlange (pCommandQueue) eingefügt.

Es gibt einige Einschränkungen, was entpackt werden kann: keine schlüsselbasierten Mutex-Ressourcen, keine GDI-kompatiblen Ressourcen und keine Puffer. Sie können jedoch UnwrapUnderlyingResource verwenden, um Ressourcen zu entpacken, die über die ID3D11On12Device::CreateWrappedResource-Methode erstellt wurden, sowie Ressourcen, die über ID3D11Device::CreateTexture2D erstellt wurden.

Im Allgemeinen müssen Sie das Objekt an Direct3D11on12 zurückgeben, bevor Sie es erneut in Direct3D 11 verwenden (siehe ID3D11On12Device2::ReturnUnderlyingResource).

Sie können auch UnwrapUnderlyingResource verwenden, um einen Swapchainpuffer zu entpacken. Sie müssen die Ressource auch an Direct3D11on12 zurückgeben, bevor Sie Present aufrufen (oder die Ressource anderweitig verwenden).

Beim Entpacken einer Ressource wird die Ressource aus der Direct3D11On12-Übersetzungsebene ausgecheckt. Sie dürfen keine Übersetzungsebenennutzung (über jede Version der API) planen, während die Ressource ausgecheckt ist. Überprüfen Sie die Ressource mit ID3D11On12Device2::ReturnUnderlyingResource wieder in (auch als Rückgabe der Ressource bezeichnet).

UnwrapUnderlyingResource wird nicht geleert und kann GPU-Arbeit planen. Sie sollten nach dem Aufrufen von UnwrapUnderlyingResource leeren, wenn Sie extern auf den Abschluss warten.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10, Version 2004 (10.0; Build 19041)
Unterstützte Mindestversion (Server) Windows Server, Version 2004 (10.0; Build 19041)
Kopfzeile d3d11on12.h
Bibliothek D3D11.lib
DLL D3D11.dll

Weitere Informationen