IDXGIOutputDuplication::ReleaseFrame 方法 (dxgi1_2.h)

指示应用程序已完成处理帧。

语法

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
Library Dxgi.lib

请参阅

IDXGIOutputDuplication