49 lines
673 B
C++
49 lines
673 B
C++
|
|
#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 */
|