void CallTimers() { Time now = Time::Now(); while (g_listTimers.GetCount() != 0) { TRef<Timer> ptimer = g_listTimers.GetFront(); if (now < ptimer->m_when) { break; } g_listTimers.PopFront(); if (ptimer->Trigger(now)) { g_listTimers.InsertSorted( new Timer( ptimer->m_psink, ptimer->m_delta, Time::Now() + ptimer->m_delta ) ); } } }
void Window::AddSink(IEventSink* psink, float delta) { g_listTimers.InsertSorted(new Timer(psink, delta, Time::Now() + delta)); }