我想在我的显示器屏幕上依次绘制一个帧编号
0 1 2 3 4 5 6 7 ...
每个物理帧一个数字(每秒100次 在100 Hz刷新率监视器上)是否可以在 WINAPI / GDI?怎么做?
答案 0 :(得分:2)
GDI和GDI +都不允许您访问vsync信号。
不推荐使用的DirectDraw API有一种等待vsync的方法。当您调用相应的Present方法时,较新的DirectX API基本上可以帮到您(尽管我相信有不的选项等待vsync)。
答案 1 :(得分:0)
现代版本具有Desktop Window Manager(合成器。请参见https://en.wikipedia.org/wiki/Desktop_Window_Manager)。您可以要求它阻止,直到发生与视频帧速率同步的“某些事件”。只需调用DwmFlush()。我不会链接到文档,因为链接会过时。
在我的计算机上,等待DwmFlush()时调度了我的应用程序。换句话说,这不会浪费CPU的繁忙等待时间,这很好。
我相信Windows Vista和7具有DWM,但可以将其禁用。在Windows 8及更高版本上始终存在。