次の方法で共有


IDXGIDevice2::OfferResources メソッド (dxgi1_2.h)

オペレーティング システムがコンテンツを破棄することで、リソースのビデオ メモリを解放できるようにします。

構文

HRESULT OfferResources(
  [in] UINT                         NumResources,
  [in] IDXGIResource                * const *ppResources,
  [in] DXGI_OFFER_RESOURCE_PRIORITY Priority
);

パラメーター

[in] NumResources

ppResources 引数配列内のリソースの数。

[in] ppResources

提供するリソースの IDXGIResource インターフェイスへのポインターの配列。

[in] Priority

データの価値を示す DXGI_OFFER_RESOURCE_PRIORITY型指定された値。

戻り値

OfferResources は次を 返します。

  • リソースが正常に提供されたかどうかをS_OKする
  • 配列内のリソースまたは優先度が無効な場合にE_INVALIDARGします

解説

Priority パラメーターが指定する優先度の値は、呼び出し元がコンテンツをどの程度重要と見なしているかを示します。 オペレーティング システムでは、優先度の値を使用して、優先順位の順にリソースを破棄します。 オペレーティング システムは、優先度の低いリソースを破棄してから、より高い優先度で提供されるリソースを破棄します。

リソースがパイプラインにバインドされている間に OfferResources を呼び出してリソースを提供すると、リソースはバインド解除されます。 マップされたリソースに対して OfferResources を呼び出すことはできません。 リソースを提供した後は、 IDXGIDevice2::ReclaimResource メソッドを呼び出してリソースを再利用するまで、リソースをマップしたり、パイプラインにバインドしたりすることはできません。 OfferResources を呼び出して変更できないリソースを提供することはできません。

共有リソースを提供するには、共有デバイスの 1 つだけで OfferResources を呼び出します。 リソースへの排他的アクセスを確保するには、 IDXGIKeyedMutex オブジェクトを使用し、ミューテックスを保持している間にのみ OfferResources を呼び出す必要があります。 実際、 IDXGIKeyedMutex を使用せずに共有リソースを提供することはサポートされていないため、 IDXGIKeyedMutex を使用しない限り、共有リソースを提供することはできません。

メモ ユーザー モード ディスプレイ ドライバーは、 OfferResources の呼び出しで指定したリソースをすぐに提供できない場合があります。 ドライバーは、 IDXGISwapChain::P resentIDXGISwapChain1::P resent1、または ID3D11DeviceContext::Flush の次回の呼び出しまで提供を延期できます。
 
Windows 7 用プラットフォーム更新プログラム: ランタイムは、共有されていないリソースで OfferResources が正しく使用されていることを検証しますが、意図した機能は実行しません。 Windows 7 用プラットフォーム更新プログラムの詳細については、「Windows 7 用プラットフォーム更新プログラム」を参照してください。

要件

   
サポートされている最小のクライアント Windows 8 および Windows 7 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2012 および Windows Server 2008 R2 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー dxgi1_2.h
Library Dxgi.lib

関連項目

IDXGIDevice2

IDXGIDevice2::ReclaimResource