SDL2 - Vsync无法正常工作

时间:2015-06-20 12:13:05

标签: c++ sdl-2

我在我的程序中使用vsync,它工作正常,直到我最小化窗口。我在创建渲染器时这样做了:

renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);

这是游戏循环:

while (running)
{
    checkEvent();
    handleKeyboard(timer.getDelta());

    render();
}

它给我一个稳定的每秒60帧,但是当我最小化窗口时,我每秒得到超过100000帧。为什么会这样?

1 个答案:

答案 0 :(得分:2)

可能只是SDL中的一个错误。如果你更多地调查了这个问题:阅读文档做一些测试,你可以报告错误。很快就会修复它。 Ryan及其同事工作得很好。 :)

话虽如此。我永远不会认为Vsync适用于每个系统。您可能希望添加自己的帧率限制系统。依靠硬件来限制帧速率是一个坏主意。

修改 我在游戏中使用它来限制帧速率:

.../<component>/<role>org.apache.maven.lifecycle.Lifecycle