D3DPRESENT

描述适配器刷新率与完成 “当前” 或“ 演示 ”操作的速率之间的关系。 这些值还充当 D3DCAPS9 的 PresentationIntervals 字段的标志值。

一直 说明
D3DPRESENT_DONOTFLIP
在呈现期间,使用前缓冲区作为源图面和目标图面。 已计划帧同步,但显示的图面不会更改。 仅当应用程序处于全屏模式且已指定D3DSWAPEFFECT_FLIPEX时,此标志才可用。
此标志仅在 Direct3D 9Ex 中可用。
D3DPRESENT_DONOTWAIT
不能由 hal 设备安排演示文稿。 如果在对 Present 的调用中设置了此标志,并且硬件正忙于处理或等待垂直同步间隔,则 Present 将返回D3DERR_WASSTILLDRAWING以指示 blit 操作不完整。
D3DPRESENT_FLIPRESTART
保留。
D3DPRESENT_FORCEIMMEDIATE
在此 Present 调用上强制实施D3DPRESENT_INTERVAL_IMMEDIATE。 仅当使用 D3DSWAPEFFECT_FLIPEX 时,才能指定此标志。 窗口和全屏演示行为是相同的。 这对于希望放弃已检测为延迟的帧并在合成时呈现后续帧的媒体应用特别有用。 如果指定此标志不正确,将返回无效参数错误。 当多个具有D3DPRESENT_FORCEIMMEDIATEs的连续帧排队时,仅显示最后一帧,用于开窗和全屏演示。
此标志在 Windows 7 或更高版本操作系统上的 Direct3D 9Ex 中可用。
使用D3DSWAPEFFECT_FLIPEX时,使用D3DPRESENT_INTERVAL_IMMEDIATE或D3DPRESENT_INTERVAL_FORCEIMMEDIATE呈现的每个帧将覆盖上一帧的当前间隔。 例如,如果使用以下交换效果将以下帧排队:帧 A (D3DPRESENT_INTERVAL_ONE) 、帧 B (D3DPRESENT_INTERVAL_ONE) 、帧 C (D3DPRESENT_INTERVAL_ONE) 、帧 D (D3DPRESENT_INTERVAL_FORCEIMMEDIATE) ,则帧 D 将覆盖帧 C 的当前间隔。 按当前间隔显示的帧为帧 A、帧 B (帧 C,) 帧 D 重写。
请参阅“备注”。
D3DPRESENT_INTERVAL_DEFAULT
这几乎等同于D3DPRESENT_INTERVAL_ONE。 请参阅备注。
D3DPRESENT_INTERVAL_ONE
驱动程序将等待垂直回溯期, (运行时将“跟随”以防止撕裂) 。 当前 操作不会比屏幕刷新更频繁地受到影响;运行时将在每个适配器刷新期间最多完成一个 Present 操作。 这等效于在 DirectX 8.1 中使用 D3DSWAPEFFECT_COPYVSYNC。 此选项始终可用于窗口交换链和全屏交换链。 请参阅备注。
D3DPRESENT_INTERVAL_TWO
驱动程序将等待垂直回溯期。 当前 操作不会比每秒屏幕刷新更频繁地受到影响。 检查 PresentationIntervals cap (请参阅 D3DCAPS9) 以查看驱动程序是否支持D3DPRESENT_INTERVAL_TWO。
D3DPRESENT_INTERVAL_THREE
驱动程序将等待垂直回溯期。 当前 操作不会比第三次屏幕刷新更频繁地受到影响。 检查 PresentationIntervals cap (请参阅 D3DCAPS9) 以查看驱动程序是否支持D3DPRESENT_INTERVAL_THREE。
D3DPRESENT_INTERVAL_FOUR
驱动程序将等待垂直回溯期。 当前 操作不会比第四次屏幕刷新更频繁地受到影响。 检查 PresentationIntervals 成员 (请参阅 D3DCAPS9) 以查看驱动程序是否支持D3DPRESENT_INTERVAL_FOUR。
D3DPRESENT_INTERVAL_IMMEDIATE
运行时会立即更新窗口工作区,并且可能会在适配器刷新期间多次执行此操作。 这等效于在 DirectX 8 中使用 D3DSWAPEFFECT_COPY。 当前 操作可能会立即受到影响。 此选项始终可用于窗口交换链和全屏交换链。 请参阅备注。
D3DPRESENT_LINEAR_CONTENT
要显示的后台缓冲区的内容位于线性颜色空间中。
  • 演示文稿将从线性空间隐式转换为 sRGB (gamma = 2.2) 。 这是唯一受支持的转换。
  • 由于此标志表示后台缓冲区内容的属性,因此可以在 Present 调用期间指定标志。 换句话说,应用程序可以在一个帧中呈现线性内容,然后在下一帧中切换到已更正的内容。
  • 当交换链全屏时,将忽略此标志。 (请注意,此标志仅在显式交换链版本的 Present 上可用。 Present 方法不采用 flags 参数。)
  • 此标志始终被接受,但仅在驱动程序公开 >D3DCAPS3_LINEAR_TO_SRGB_PresentATION时才生效。
  • 唯一支持的后台缓冲区格式是 X8R8G8B8
请参阅 窗口交换链
D3DPRESENT_VIDEO_RESTRICT_TO_MONITOR
将呈现的内容剪辑到适配器面向的监视器/设备,在 Flip3D 视图中显示内容的缩略图,并在其他监视器上显示任务栏缩略图。
此标志仅在 Direct3D 9Ex 中可用。
有关 Windows Vista 此功能的更多详细信息,请参阅 桌面窗口管理器 。 如果未在桌面组合模式下运行,则标志会提供 与 D3DPRESENTFLAG_DEVICECLIP 相同的行为。
注意: 此标志仅应与交换效果D3DSWAPEFFECT_FLIPEX一起使用。 此标志 与其他 交换效果的用法已被弃用,将来的 Windows 版本中可能不起作用。
D3DPRESENT_UPDATEOVERLAYONLY
汇报覆盖位置或色键数据,不会导致实际翻转,也不更改图像的显示持续时间。
此标志仅在 Direct3D 9Ex 中可用。
D3DPRESENT_HIDEOVERLAY
关闭覆盖硬件。
此标志仅在 Direct3D 9Ex 中可用。
D3DPRESENT_UPDATECOLORKEY
重绘色键数据。
此标志仅在 Direct3D 9Ex 中可用。

注解

窗口模式支持D3DPRESENT_INTERVAL_DEFAULT、D3DPRESENT_INTERVAL_IMMEDIATE和D3DPRESENT_INTERVAL_ONE。 D3DPRESENT_INTERVAL_DEFAULT和D3DPRESENT_INTERVAL_ONE几乎是等效的, (请参阅下面) 有关计时器分辨率的信息。 它们的性能与COPY_VSYNC类似,每个帧只有一个,并且它们防止与光束跟随撕裂。 相比之下,D3DPRESENT_INTERVAL_IMMEDIATE将尝试提供无限制的演示速率。

全屏模式支持与窗口模式类似的用法,支持D3DPRESENT_INTERVAL_IMMEDIATE而不考虑刷新率或交换效果。 D3DPRESENT_INTERVAL_DEFAULT使用默认的系统计时器分辨率,而D3DPRESENT_INTERVAL_ONE调用 timeBeginPeriod 来增强系统计时器分辨率。 这可以提高垂直同步的质量,但会占用略多的处理时间。 这两个参数都尝试垂直同步。

要求

要求
标头
D3d9.h

请参阅

Direct3D 常量