D3DPRESENT

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

恒定 Description
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
驱动程序将等待垂直回溯期(运行时将“梁跟”以防止撕裂)。 当前 作不会比屏幕刷新更频繁地受到影响;运行时将最多完成每个适配器刷新周期的一个“演示”作。 这相当于在 DirectX 8.1 中使用D3DSWAPEFFECT_COPY_VSYNC。 此选项始终可用于窗换链和全屏交换链。 请参见注解。
D3DPRESENT_INTERVAL_TWO
驱动程序将等待垂直回溯期。 每秒屏幕刷新相比,当前作不会受到更多的影响。 检查 PresentationIntervals 上限(请参阅 D3DCAPS9),查看驱动程序是否支持D3DPRESENT_INTERVAL_TWO。
D3DPRESENT_INTERVAL_THREE
驱动程序将等待垂直回溯期。 第三次屏幕刷新相比,当前作将不受影响。 检查 PresentationIntervals 上限(请参阅 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 方法不采用标志参数。
  • 此标志始终被接受,但仅在驱动程序公开 >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 来增强系统计时器分辨率。 这提高了垂直同步的质量,但会占用稍多的处理时间。 这两个参数都尝试垂直同步。

要求

Requirement 价值
Header
D3d9.h

另请参阅

Direct3D 常量