IDXGISwapChain1::P resent1 方法 (dxgi1_2.h)

在显示屏幕上显示一个框架。

语法

HRESULT Present1(
       UINT                          SyncInterval,
       UINT                          PresentFlags,
  [in] const DXGI_PRESENT_PARAMETERS *pPresentParameters
);

参数

SyncInterval

一个整数,指定如何将框架的呈现与垂直空白同步。

对于位块传输 (bitblt) 模型 (DXGI_SWAP_EFFECT_DISCARDDXGI_SWAP_EFFECT_SEQUENTIAL) ,值为:

  • 0 - 演示文稿立即发生,没有同步。
  • 1 到 4 - 同步 n个垂直空白之后的演示文稿。
对于翻转模型 (DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL) ,值为:
  • 0 - 取消之前显示的帧上的剩余时间,如果较新的帧排队,则放弃此帧。
  • 1 到 4 - 同步至少 n 个 垂直空白的演示文稿。
有关显示同步间隔值如何影响翻转演示文稿队列的示例,请参阅备注。

如果更新区域跨多个输出 (每个输出由 IDXGIOutput1) 表示, 则 Present1 将执行与包含目标窗口工作区最大子矩形的输出的同步。

PresentFlags

包含交换链表示选项的整数值。 这些选项由 DXGI_PRESENT 常量定义。

[in] pPresentParameters

指向 DXGI_PRESENT_PARAMETERS 结构的指针,该结构描述要呈现的帧的更新矩形和滚动信息。

返回值

可能的返回值包括:S_OK、 DXGI_ERROR_DEVICE_REMOVEDDXGI_STATUS_OCCLUDEDDXGI_ERROR_INVALID_CALL或E_OUTOFMEMORY。

注解

应用可以使用 Present1 通过指定滚动和脏矩形来优化演示文稿。 当运行时具有有关这些矩形的信息时,运行时可以在演示期间更高效地执行必要的比特,并将此元数据传递到桌面窗口管理器 (DWM) 。 然后,DWM 可以使用元数据来优化呈现,并将元数据传递给间接显示器和终端服务器,以优化通过线路的流量。 应用必须将其修改限制为仅传递到 Present1 的脏区域,并修改整个脏区域,以避免公开未定义的资源内容。

对于使用设置DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL值创建的翻转演示文稿模型交换链,成功的演示文稿会导致从图形管道取消绑定后退缓冲区 0,但在 Flags 参数中传递DXGI_PRESENT_DO_NOT_SEQUENCE标志时除外。

有关向屏幕呈现内容时数据值如何变化的信息,请参阅 转换颜色空间的数据

有关在应用使用多个线程时调用 Present1 的信息,请参阅 多线程注意事项多线程和 DXGI

翻转演示文稿模型队列

假设在调用 Present1 之前,以下具有同步间隔值的帧已从最早 (的 A) 排队到最新的 (E) 。

A:3、B:0、C:0、D:1、E:0

调用 Present1 时,运行时仅显示 1 个垂直空白间隔的帧 A。 运行时会提前终止帧 A,因为帧 B 中的同步间隔为 0。然后,运行时显示 1 个垂直空白间隔的帧 D,然后显示 E 帧,直到提交新演示文稿。 运行时放弃帧 B 和 C。

可变刷新率显示

启用撕裂是可变刷新率显示器的要求。 CheckFeatureSupport 方法可用于确定此功能是否可用,设置所需标志时,请参阅DXGI_PRESENT_ALLOW_TEARINGDXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING的说明,以及 DXGI 1.5 改进变量刷新率显示/Vsync off 部分。

要求

要求
最低受支持的客户端 适用于 Windows 7 的Windows 8和平台更新 [桌面应用 |UWP 应用]
最低受支持的服务器 适用于 Windows Server 2008 R2 的Windows Server 2012和平台更新 [桌面应用 |UWP 应用]
目标平台 Windows
标头 dxgi1_2.h
Library Dxgi.lib

另请参阅

IDXGISwapChain1

Present