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

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

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

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

    最佳答案

    如果没有让您流泪,请使用D3DPRESENT_INTERVAL_DEFAULT

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

    关于c++ - 横向撕裂DirectX9,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11000627/

    10-10 16:53