我在我的程序中使用vsync,它工作正常,直到我最小化窗口。我在创建渲染器时这样做了:
renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
这是游戏循环:
while (running)
{
checkEvent();
handleKeyboard(timer.getDelta());
render();
}
它给我一个稳定的每秒60帧,但是当我最小化窗口时,我每秒得到超过100000帧。为什么会这样?
答案 0 :(得分:2)
可能只是SDL中的一个错误。如果你更多地调查了这个问题:阅读文档做一些测试,你可以报告错误。很快就会修复它。 Ryan及其同事工作得很好。 :)
话虽如此。我永远不会认为Vsync适用于每个系统。您可能希望添加自己的帧率限制系统。依靠硬件来限制帧速率是一个坏主意。
修改强> 我在游戏中使用它来限制帧速率:
.../<component>/<role>org.apache.maven.lifecycle.Lifecycle