33 #include "util/log/logger.h"
35 #include "timeevent.h"
36 #include "timemanager.h"
39 static const uint32_t UNDEFINED_TIME_DELTA = 999999;
40 static Logger _log(LM_UTIL);
44 m_time_delta(UNDEFINED_TIME_DELTA),
45 m_average_frame_time(0) {
53 double avg_multiplier = 0.985;
54 if (m_current_time == 0) {
55 m_current_time = SDL_GetTicks();
59 m_time_delta = m_current_time;
60 m_current_time = SDL_GetTicks();
61 m_time_delta = m_current_time - m_time_delta;
63 m_average_frame_time = m_average_frame_time * avg_multiplier +
64 double(m_time_delta) * (1.0 - avg_multiplier);
71 for (
size_t i = 0; i < m_events_list.size(); ++i) {
74 event->managerUpdateEvent(m_current_time);
79 std::vector<TimeEvent*>::iterator it;
80 it = std::remove( m_events_list.begin(), m_events_list.end(),
static_cast<TimeEvent*
>(0));
81 m_events_list.erase( it, m_events_list.end());
86 m_events_list.push_back(event);
91 for (
size_t i = 0; i < m_events_list.size(); ++i) {
93 if( event_i == event) {
101 return m_current_time;
109 return m_average_frame_time;
113 FL_LOG(_log,
LMsg(
"Timers: ") << m_events_list.size());
void registerEvent(TimeEvent *event)
void printStatistics() const
void unregisterEvent(TimeEvent *event)
double getAverageFrameTime() const
uint32_t getTimeDelta() const