在win7中编程垂直回扫
programming vertical retrace in win7
嗨,最近我在编程一个同步部分,它严格要求等待垂直回扫。所以我使用了一条特权指令:_inp(0x3DA)&0x08。但是,此指令具有特权,需要安装port95NT.exe才能在我的旧XP计算机上正常工作。现在使用Win7时,会出现运行时警告以阻止我执行,而且我也不能在64位系统上安装port95NT.exe。那么,有人有其他想法来检测64位Win7上垂直回扫中新帧的开始吗?
Microsoft设计了DirectX等API,这样开发人员就不必像这样干扰硬件级别的操作。现代Windows版本可能无法再直接访问该硬件端口。
如果有可用的工具包,您可以从DirectDraw API尝试WaitForVerticalBlank()
。如果使用的是Direct3D,则可以尝试D3DPRESENT_INTERVAL_ONE
和Present()
,以强制更新等待到垂直同步之后。
首先,现代平板电脑确实是这样工作的。每个像素必须定期刷新。有一个行/列选通和垂直刷新率。虽然没有像CRTS那样实际"消隐",但有一个垂直回扫,行/列值返回原点。对于双(或三)缓冲系统,在此间隔期间必须交换缓冲区,以避免帧撕裂。此外,所有专业视频应用程序都必须进行帧同步,以提供平滑的帧切换,或者与相机和其他工作室设备进行"枪战"。
相关文章:
- 有一个打印语句的函数是一种糟糕的编程实践吗
- 我是C++编程的新手,这些代码之间有什么区别,我应该使用哪一个
- QScrollArea:由垂直滚动条引起的水平滚动条
- 模板元编程:如何将参数包组合成新的参数包
- 垂直方向的 Gtk3+ 旋转按钮 (c/c++)
- Qt Q串行端口未编程设备未关闭
- 模板元编程 - 尝试实现维度分析
- 我是编程新手
- C++编程从外部文本文件定义数组大小
- 了解算法的性能差异(如果以不同的编程语言实现)
- 使用 Gtkmm 以编程方式选择 Gtk::TextView 中的文本
- 按钮悬停在 QT 中垂直布局的选项卡小部件中不起作用
- 如何将可变参数模板转换为多个单个模板?(C++竞争编程调试模板)
- 使用命名空间正确编程
- C++编程:运算符重载中的引用如何工作?
- Arduino 模块化编程与全局和设置
- C++ 运算符修改/元编程策略,用于不那么冗长的语法
- 在没有管理员权限的情况下,在 c++ 中以编程方式将程序添加到启动
- 如何以编程方式将音频从任何录制设备路由到任何播放设备
- 在win7中编程垂直回扫