如何vsync winapi图纸

时间:2012-09-13 16:11:06

标签: winapi graphics 3d 2d

我想在我的显示器屏幕上依次绘制一个帧编号

  

0 1 2 3 4 5 6 7 ...

每个物理帧一个数字(每秒100次 在100 Hz刷新率监视器上)是否可以在 WINAPI / GDI?怎么做?

2 个答案:

答案 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及更高版本上始终存在。