1

我一直在尝试使用顶点着色器和像素着色器(非常基本的)在 Win7 下使用 DirectX9 开发视频捕获显示应用程序。但是,显示的图像显示出一些撕裂,总是在屏幕上的同一位置。规格如下

  • 正在通过网络摄像头捕获视频
  • 显示器未处于全屏模式
  • 屏幕刷新率为60Hz
  • D3DPRESENT_INTERVAL_ONE 用于强制刷新率良好(在某些论坛上找到,但不起作用)

我尝试用所有可用的参数修改最后一个参数,以实现 D3DPRESENT_INTERVAL_ONE 给我一个一致的(总是在屏幕上的相同位置)撕裂。

我知道“启用”垂直同步可能会解决我的问题,但我似乎无法在网上找到任何有关此的信息(是的,我知道,DirectX9 已经过时了),所以任何帮助将不胜感激!

4

1 回答 1

1

D3DPRESENT_INTERVAL_DEFAULT如果它不会让您流泪,请使用。

此标志还启用垂直同步。从文档:

D3DPRESENT_INTERVAL_DEFAULT 使用默认系统计时器分辨率,而 D3DPRESENT_INTERVAL_ONE 调用 timeBeginPeriod 以增强系统计时器分辨率。这提高了垂直同步的质量,但会消耗更多的处理时间。两个参数都尝试垂直同步。

于 2012-06-14T20:19:30.010 回答