Хотя следующий код обеспечивает некоторую экономию энергии, FPS не ограничен должным образом. Когда предполагается зафиксировать частоту кадров на уровне 60 кадров в секунду, я получаю 82. То же самое для 30, я получаю 49 кадров в секунду.
Расчет FPS:
previousTime = currentTime;
currentTime = SDL_GetTicks();
fps_++;
if (currentTime - lastOutput >= 1000)
{
lastOutput = currentTime;
fps = fps_; // the variable 'fps' is displayed
fps_ = 0;
}
Ограничение FPS:
if (currentTime - previousTime < 1000 / maxFPS)
{
SDL_Delay(1000 / maxFPS - currentTime + previousTime);
}
Что я напортачил?