diff --git a/include/Spectre/Game/FPSCounter.h b/include/Spectre/Game/FPSCounter.h index 7e3511b..3c42141 100644 --- a/include/Spectre/Game/FPSCounter.h +++ b/include/Spectre/Game/FPSCounter.h @@ -2,6 +2,8 @@ #ifndef SPECTRE_FPS_COUNTER_H #define SPECTRE_FPS_COUNTER_H +#include + // Simple FPS counter. namespace sp { @@ -19,7 +21,7 @@ public : // Set the update rate (in seconds). // How often the FPS should be sampled and calculated. - void setUpdateRate(unsigned int seconds); + void setUpdateRate(unsigned int rate); // Update the internal time measurment. bool update(); @@ -29,16 +31,16 @@ public : private : - // Frame counter. + // Number of frames since last update. unsigned int m_count; - // time (in ms) - unsigned int m_time; + // Last time we updated the counter. + Time m_time; - // Update rate (in ms) - unsigned int m_updateRate; + // Update rate (at what interval should we update) + Time m_updateRate; - // Calculated fps. + // Calculated Frames per second. float m_fps; }; diff --git a/source/Game/FPSCounter.cpp b/source/Game/FPSCounter.cpp index 84fa6b0..c4212a4 100644 --- a/source/Game/FPSCounter.cpp +++ b/source/Game/FPSCounter.cpp @@ -5,9 +5,9 @@ namespace sp { FPSCounter::FPSCounter() : -m_fps (60.0f), -m_updateRate (2000) +m_fps (60.0f) { + m_updateRate = Time::seconds(2); reset(); } @@ -21,14 +21,14 @@ float FPSCounter::getFPS() const return m_fps; } -void FPSCounter::setUpdateRate(unsigned int ups) +void FPSCounter::setUpdateRate(unsigned int rate) { // Clamp to 1. - if (ups < 1) { - ups = 1; + if (rate < 1) { + rate = 1; } - m_updateRate = ups * 1000; + m_updateRate = Time::seconds(rate); // Must reset the counter. reset(); @@ -36,12 +36,11 @@ void FPSCounter::setUpdateRate(unsigned int ups) bool FPSCounter::update() { - unsigned int current = system::getMilliseconds(); - unsigned int elapsed = current - m_time; + Time current = Time::milliseconds(system::getMilliseconds()); + Time elapsed = current - m_time; if (elapsed >= m_updateRate) { - float fraction = m_count / ((float) elapsed); - m_fps = fraction * 1000.f; + m_fps = m_count / elapsed.seconds(); m_time = current; m_count = 0; @@ -52,7 +51,7 @@ bool FPSCounter::update() void FPSCounter::reset() { - m_time = system::getMilliseconds(); + m_time = Time::milliseconds(system::getMilliseconds()); m_count = 0; }