#include #include namespace sp { FPSCounter::FPSCounter() : m_fps (60.0f) { m_updateRate = Time::seconds(2); reset(); } void FPSCounter::addFrame() { m_count++; } float FPSCounter::getFPS() const { return m_fps; } void FPSCounter::setUpdateRate(unsigned int rate) { // Clamp to 1. if (rate < 1) { rate = 1; } m_updateRate = Time::seconds(rate); // Must reset the counter. reset(); } bool FPSCounter::update() { Time current = Time::milliseconds(system::getMilliseconds()); Time elapsed = current - m_time; if (elapsed >= m_updateRate) { m_fps = m_count / elapsed.seconds(); m_time = current; m_count = 0; return true; } return false; } void FPSCounter::reset() { m_time = Time::milliseconds(system::getMilliseconds()); m_count = 0; } } // namespace sp