IDXGIOutputDuplication::ReleaseFrame 方法 (dxgi1_2.h)

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

Syntax

HRESULT ReleaseFrame();

傳回值

ReleaseFrame 會傳回:

  • 如果成功完成,S_OK。
  • 如果應用程式已經放開框架,DXGI_ERROR_INVALID_CALL。
  • 如果桌面重複介面無效,DXGI_ERROR_ACCESS_LOST。 桌面重複介面通常會在桌面上顯示不同類型的影像時變成無效。 這種情況的範例包括:
    • 桌面交換器
    • 模式變更
    • 從 DWM 開啟、關閉 DWM 或其他全螢幕應用程式
    在此情況下,應用程式必須釋放 IDXGIOutputDuplication 介面,並為新內容建立新的 IDXGIOutputDuplication
  • 可能是 DXGI_ERROR 主題中所述的其他錯誤碼。

備註

應用程式必須先釋放框架,才能取得下一個框架。 放開框架之後,包含桌面點陣圖的介面會變成無效;您將無法在 DirectX 圖形作業中使用介面。

基於效能考慮,建議您在呼叫 IDXGIOutputDuplication::AcquireNextFrame 方法之前釋放框架,以取得下一個畫面。 當用戶端沒有框架時,作業系統會將所有桌面更新複製到介面。 如果作業系統針對發生的每個畫面更新相同的區域,這可能會導致浪費的 GPU 週期。 當用戶端取得框架時,用戶端只會知道此區域的最終更新;因此,先前畫面格期間的任何重迭更新會浪費。 當用戶端取得框架時,用戶端會擁有介面;因此,作業系統只能追蹤更新的區域,而且無法將桌面更新複製到介面。 由於此行為,我們建議您將呼叫釋放目前框架和取得下一個畫面格的呼叫之間的時間降至最低。

需求

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

另請參閱

IDXGIOutputDuplication