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
種類: ID3D12CommandQueue*
アプリケーションでリソースの使用を計画しているコマンド キュー。 リソースにアクセスする保留中の作業では、フェンス待機がこのキューでスケジュールされます。 その後、呼び出し元所有のフェンス上のシグナルを含め、このキューでさらに作業をキューに入れます。
[in] riid
型: REFIID
で ppvResource12
返されるインターフェイスのグローバル一意識別子 (GUID) への参照。
[out] ppvResource12
型: void**
Direct3D 12 リソースへのポインターを受け取るメモリ ブロックへのポインター。
戻り値
型: HRESULT
関数が成功した場合は、S_OK を返します。 それ以外の場合は、 HRESULTエラー コードが返されます。
注釈
リソースは D3D12_RESOURCE_STATE_COMMON に移行され (まだその状態になっていない場合)、適切な待機がコマンド キュー (pCommandQueue) に挿入されます。
ラップ解除できる内容には、キー付きミューテックス リソースなし、GDI 互換リソース、バッファーなしという制限があります。 ただし、 UnwrapUnderlyingResource を使用すると、 ID3D11On12Device::CreateWrappedResource メソッドを使用して作成されたリソースと、 ID3D11Device::CreateTexture2D で作成されたリソースのラップを解除できます。
一般に、Direct3D11on12 でもう一度使用する前に、オブジェクトを Direct3D11on12 に返す必要があります (「ID3D11On12Device2::ReturnUnderlyingResource」を参照してください)。
UnwrapUnderlyingResource を使用してスワップチェーン バッファーのラップを解除することもできます。 また、 Present を呼び出す (またはリソースを使用する) 前に、リソースを Direct3D11on12 に返す必要もあります。
リソースのラップを解除すると、Direct3D11On12 変換レイヤーからリソースがチェックアウトされます。 リソースがチェックアウトされている間は、(どちらのバージョンの API でも) 翻訳レイヤーの使用をスケジュールすることはできません。ID3D11On12Device2::ReturnUnderlyingResource を使用して、リソースをチェックインし直します (リソースの返しとも呼ばれます)。
UnwrapUnderlyingResource はフラッシュせず、GPU の作業をスケジュールする場合があります。 外部で完了を待つ場合 は、UnwrapUnderlyingResource を呼び出した後にフラッシュする必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 10バージョン 2004 (10.0;ビルド 19041) |
サポートされている最小のサーバー | Windows Server バージョン 2004 (10.0;ビルド 19041) |
Header | d3d11on12.h |
Library | D3D11.lib |
[DLL] | D3D11.dll |
こちらもご覧ください
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示