IDXGIOutputDuplication::ReleaseFrame 方法 (dxgi1_2.h)
指示应用程序已完成处理帧。
语法
HRESULT ReleaseFrame();
返回值
ReleaseFrame 返回:
- 如果成功完成,S_OK。
- 如果应用程序已释放帧,DXGI_ERROR_INVALID_CALL。
- 如果桌面重复接口无效,DXGI_ERROR_ACCESS_LOST。 当桌面上显示不同类型的图像时,桌面重复界面通常会失效。 这种情况的示例包括:
- 桌面交换机
- 模式更改
- 从 DWM 打开、DWM 关闭或其他全屏应用程序切换
- 可能是 DXGI_ERROR 主题中描述的其他错误代码。
备注
应用程序必须先释放帧,然后才能获取下一帧。 释放帧后,包含桌面位图的图面将变为无效;你将无法在 DirectX 图形操作中使用图面。
出于性能原因,建议在调用 IDXGIOutputDuplication::AcquireNextFrame 方法以获取下一帧之前释放该帧。 当客户端不拥有该框架时,操作系统会将所有桌面更新复制到图面。 如果操作系统针对发生的每个帧更新同一区域,这可能会导致 GPU 周期浪费。 当客户端获取帧时,客户端仅知道对此区域的最终更新;因此,之前帧期间的任何重叠更新都浪费。 当客户端获取帧时,客户端拥有该图面;因此,操作系统只能跟踪更新的区域,不能将桌面更新复制到图面。 由于此行为,建议尽量缩短释放当前帧的调用与获取下一帧的调用之间的时间。
要求
最低受支持的客户端 | Windows 8 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2012 [仅限桌面应用] |
目标平台 | Windows |
标头 | dxgi1_2.h |
Library | Dxgi.lib |