c++ - 水平撕裂 DirectX9

标签 c++ image video directx

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

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

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

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

最佳答案

如果不会出现撕裂现象,请使用 D3DPRESENT_INTERVAL_DEFAULT

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

D3DPRESENT_INTERVAL_DEFAULT uses the default system timer resolution whereas the D3DPRESENT_INTERVAL_ONE calls timeBeginPeriod to enhance system timer resolution. This improves the quality of vertical sync, but consumes slightly more processing time. Both parameters attempt to synchronize vertically.

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

相关文章:

JavaScript 隐写术 : Hiding an image inside of an image

node.js - Meteor:通过 API 下载视频文件并将其保存到磁盘

java - 由于 VideoView 错误,无法播放此视频

c++ - vector 中的 size() 与 empty() - 为什么首选 empty()?

c++ - 优化编译时应该知道的if-else,但信息在不同的项目中

c++ - 泛化标准库容器的输出函数

android - BitmapFactory.decodeFile 导致 outOfMemoryError

image - 如何将标准虚拟机导入开发测试实验室

ios - swift 3 : thumbnail from video

c++ - 链接列表错误,C++