IDXGIOutputDuplication 介面 (dxgi1_2.h)

IDXGIOutputDuplication介面會存取並操作重複的桌面映射。

繼承

IDXGIOutputDuplication介面繼承自IDXGIObjectIDXGIOutputDuplication 也有下列類型的成員:

方法

IDXGIOutputDuplication介面具有這些方法。

 
IDXGIOutputDuplication::AcquireNextFrame

指出應用程式已準備好處理下一個桌面映射。
IDXGIOutputDuplication::GetDesc

擷取重複輸出的描述。 此描述會指定包含桌面影像之表面的維度。
IDXGIOutputDuplication::GetFrameDirtyRects

取得目前桌面框架之中途矩形的相關資訊。
IDXGIOutputDuplication::GetFrameMoveRects

取得目前桌面框架之移動矩形的相關資訊。
IDXGIOutputDuplication::GetFramePointerShape

取得目前桌面框架之新指標圖形的相關資訊。
IDXGIOutputDuplication::MapDesktopSurface

如果桌面映射已在系統記憶體中,則提供 CPU 的有效桌面映射存取權。
IDXGIOutputDuplication::ReleaseFrame

表示應用程式已完成處理框架。
IDXGIOutputDuplication::UnMapDesktopSurface

使使用 IDXGIOutputDuplication::MapDesktopSurface 擷取之桌面映射的指標失效。

備註

共同作業應用程式可以使用 IDXGIOutputDuplication 來存取桌面映射。 非 8bpp DirectX 全螢幕模式和非 8bpp OpenGL 全螢幕模式上的 DWM (DWM) 支援IDXGIOutputDuplication。 不支援 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 方法。

雖然應用程式會處理每個桌面映射,但作業系統會將所有桌面映射更新累積到單一更新中。 如需桌面更新的詳細資訊,請參閱 更新桌面映射資料

桌面映射一律為 DXGI_FORMAT_B8G8R8A8_UNORM 格式。

Windows 市集應用程式沒有 IDXGIOutputDuplication 介面。

需求

   
最低支援的用戶端 Windows 8 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2012 [僅限傳統型應用程式]
目標平台 Windows
標頭 dxgi1_2.h

另請參閱

DXGI 介面

IDXGIObject