#ifndef SPECTRE_GAME_TIME_H #define SPECTRE_GAME_TIME_H namespace sp { class GameTime { public : GameTime(unsigned long updates_per_sec = 60); void setTimeStep(unsigned long updates_per_sec); double getTimeStep() const; unsigned long getElapsed() const; //bool shouldTick(); bool beginFrame(); bool tick(); void reset(); protected : void accumulateTime(); void updateTime(); protected : // TODO: min,max framerates // Time(in ms) when the last update occured. unsigned long m_current; unsigned long m_lastUpdate; double m_acc; // timeslice in ms. double m_slice; bool m_inLoop; }; } // namespace sp #endif /* SPECTRE_GAME_TIME_H */