ID3D11On12Device2::UnwrapUnderlyingResource メソッド (d3d11on12.h)
Direct3D 11 リソース オブジェクトのラップを解除し、Direct3D 12 リソース オブジェクトとして取得します。
構文
HRESULT UnwrapUnderlyingResource(
[in] ID3D11Resource *pResource11,
[in] ID3D12CommandQueue *pCommandQueue,
[in] REFIID riid,
[out] void **ppvResource12
);
パラメーター
[in] pResource11
型: ID3D11Resource*
ラップを解除する Direct3D 11 リソース オブジェクト。
[in] pCommandQueue
アプリケーションがリソースの使用を計画しているコマンド キュー。 リソースにアクセスする保留中の作業では、フェンス待機がこのキューでスケジュールされます。 その後、呼び出し元が所有するフェンス上のシグナルを含め、このキューでさらに作業をキューに入れることができます。
[in] riid
型: REFIID
ppvResource12
で返されるインターフェイスのグローバル一意識別子 (GUID) への参照。
[out] ppvResource12
型: void
Direct3D 12 リソースへのポインターを受け取るメモリ ブロックへのポインター。
戻り値
型: HRESULT
関数が成功した場合は、S_OKを返します。 それ以外の場合は、HRESULTエラー コードを返します。
備考
リソースは
ラップ解除できる制限がいくつかあります。キー付きミューテックス リソースなし、GDI 互換リソースなし、バッファーなし。 ただし、UnwrapUnderlyingResource を使用して、ID3D11On12Device::CreateWrappedResource メソッドを使用して作成されたリソースと、ID3D11Device::CreateTexture2Dによって作成されたリソースをラップ解除できます。
一般に、Direct3D 11 でもう一度使用する前に、オブジェクトを Direct3D11on12 に返す必要があります (ID3D11On12Device2::ReturnUnderlyingResourceを参照)。
また、UnwrapUnderlyingResource を使用して、スワップチェーン バッファーのラップを解除することもできます。 また、リソースを Direct3D11on12 に戻してから、Present を呼び出す (またはリソースを使用する) 必要があります。
リソースのラップを解除すると、Direct3D11On12 変換レイヤーからリソースがチェックアウトされます。 リソースがチェックアウトされている間は、(どちらのバージョンの API でも) 翻訳レイヤーの使用をスケジュールすることはできません。
UnwrapUnderlyingResource がフラッシュされないため、GPU の作業がスケジュールされる場合があります。 外部で完了を待つ場合 UnwrapUnderlyingResource を呼び出した後にフラッシュする必要があります。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 10 バージョン 2004 (10.0;ビルド 19041) |
サポートされる最小サーバー | Windows Server バージョン 2004 (10.0;ビルド 19041) |
ヘッダー | d3d11on12.h |
ライブラリ | D3D11.lib |
DLL | D3D11.dll |