IDXGIOutputDuplication インターフェイス (dxgi1_2.h)

IDXGIOutputDuplication インターフェイスは、複製されたデスクトップ イメージにアクセスして操作します。

継承

IDXGIOutputDuplication インターフェイスは、IDXGIObject から継承されます。 IDXGIOutputDuplication には、次の種類のメンバーもあります。

メソッド

IDXGIOutputDuplication インターフェイスには、これらのメソッドがあります。

 
IDXGIOutputDuplication::AcquireNextFrame

アプリケーションが次のデスクトップ イメージを処理する準備ができていることを示します。
IDXGIOutputDuplication::GetDesc

重複した出力の説明を取得します。 この説明では、デスクトップ イメージを含むサーフェスの寸法を指定します。
IDXGIOutputDuplication::GetFrameDirtyRects

現在のデスクトップ フレームダーティ四角形に関する情報を取得します。
IDXGIOutputDuplication::GetFrameMoveRects

現在のデスクトップ フレームの移動された四角形に関する情報を取得します。
IDXGIOutputDuplication::GetFramePointerShape

現在のデスクトップ フレームの新しいポインター図形に関する情報を取得します。
IDXGIOutputDuplication::MapDesktopSurface

デスクトップ イメージが既にシステム メモリ内にある場合は、デスクトップ イメージへの効率的なアクセスを CPU に提供します。
IDXGIOutputDuplication::ReleaseFrame

アプリケーションがフレームの処理を完了したことを示します。
IDXGIOutputDuplication::UnMapDesktopSurface

IDXGIOutputDuplication::MapDesktopSurface を使用して取得されたデスクトップ イメージへのポインターを無効にします。

解説

コラボレーション アプリケーションでは、 IDXGIOutputDuplication を使用してデスクトップ イメージにアクセスできます。 IDXGIOutputDuplication は、8bpp 以外の DirectX 全画面表示モードと 8bpp 以外の OpenGL 全画面表示モードでは、デスクトップ ウィンドウ マネージャー (DWM) でサポートされています。 16 ビットまたは 32 ビット GDI 非 DWM デスクトップ モードはサポートされていません。

アプリケーションでは、別のスレッドで IDXGIOutputDuplication を使用して、デスクトップ イメージを受信し、特定の画像処理パイプラインにフィードできます。 アプリケーションは IDXGIOutputDuplication を使用して、次の操作を実行します。

  1. 次のデスクトップ イメージを取得します。
  2. イメージを記述する情報を取得します。
  3. イメージに対して操作を実行します。 この操作は、アプリケーションがイメージ上のピクセル データを読み取ることができるように、イメージをステージング バッファーにコピーするのと同じくらい簡単です。 アプリケーションは、 アプリケーションが IDXGISurface::Map を呼び出した後にピクセル データを読み取ります。 または、この操作がより複雑になる場合があります。 たとえば、アプリケーションでは、イメージの更新されたリージョンでピクセル シェーダーを実行して、クライアントへの送信用にそれらのリージョンをエンコードできます。
  4. アプリケーションは、各デスクトップ イメージの処理を完了すると、イメージを解放し、手順 1 にループして、手順を繰り返します。 アプリケーションは、デスクトップ イメージの処理が完了するまで、これらの手順を繰り返します。
オペレーティング システムの次のコンポーネントは、デスクトップ イメージを生成できます。
  • デスクトップ イメージを作成して DWM を作成する
  • 全画面表示の DirectX または OpenGL アプリケーション
  • ログイン画面の表示に使用されるセキュリティで保護されたデスクトップなど、別のデスクトップに切り替えるアプリケーション
オペレーティング システムがデスクトップ イメージを生成する別のコンポーネントに切り替えた場合、またはモードの変更が発生すると、現在の IDXGIOutputDuplication インターフェイスはすべて無効になります。 このような状況では、アプリケーションは現在の IDXGIOutputDuplication インターフェイスを破棄し、新しい IDXGIOutputDuplication インターフェイスを作成する必要があります。

IDXGIOutputDuplication が無効になる状況の例を次に示します。

  • デスクトップ スイッチ
  • モードの変更
  • DWM オン、DWM オフ、またはその他の全画面表示アプリケーションから切り替える
このような場合、アプリケーションは IDXGIOutputDuplication インターフェイスを解放し、新しいコンテンツ用の新しい IDXGIOutputDuplication インターフェイスを作成する必要があります。 アプリケーションに新しいデスクトップ イメージに対する適切な特権がない場合、 IDXGIOutput1::D uplicateOutput メソッドの呼び出しは失敗します。

アプリケーションが各デスクトップ イメージを処理している間、オペレーティング システムはすべてのデスクトップ イメージの更新プログラムを 1 つの更新プログラムに蓄積します。 デスクトップ更新プログラムの詳細については、「 デスクトップ イメージ データの更新」を参照してください。

デスクトップ イメージは常に DXGI_FORMAT_B8G8R8A8_UNORM 形式です。

Windows ストア アプリには IDXGIOutputDuplication インターフェイスが存在しません。

要件

   
サポートされている最小のクライアント Windows 8 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2012 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー dxgi1_2.h

関連項目

DXGI インターフェイス

IDXGIObject