#include <lugre_timer.h>
Public Types | |
| enum | { kListenerEvent_Timeout, kListenerEvent_Interval, kListenerEvent_FrameInterval } |
| eventcodes for cListener More... | |
| enum | { kMaxFrameIntervalExp = 24 } |
Public Member Functions | |
| cTimer (const size_t iTime) | |
| virtual | ~cTimer () |
| void | StartFrame (const size_t iTime) |
| cTimerRegistration * | RegisterTimeoutListener (cListener *pListener, const size_t iTimeOut, void *userdata=0) |
| listener will be notified ONCE in about iTimeOut milliseconds (1000=1sec) after this call, but not during this frame | |
| cTimerRegistration * | RegisterIntervalListener (cListener *pListener, const size_t iInterval, void *userdata=0) |
| cTimerRegistration * | RegisterFrameIntervalListener (cListener *pListener, const size_t iFrameIntervalExp, void *userdata=0) |
| bool | IsCurFrameInInterval (const size_t iInterval) |
Static Public Member Functions | |
| static cTimer * | GetSingletonPtr (cTimer *pSetSingleton=0) |
| static size_t | GetIntervalStart (const size_t iInterval) |
| static bool | IsFrameInInterval (const size_t iInterval, const size_t iFrame) |
Public Attributes | |
| std::multiset < cTimerRegistration *, cTimerRegistrationCompare > | mlTimeouts |
| std::list< cTimerRegistration * > | mlIntervals |
| std::vector< std::list < cTimerRegistration * > * > | mlFrameIntervals |
Static Public Attributes | |
| static size_t | miTimeSinceLastFrame = 1 |
| static size_t | miLastFrameTime = 0 |
| static size_t | miCurFrameNum = 0 |
| static float | mfPhysStepTime = 0.0 |
Classes | |
| class | cTimerRegistration |
| commonly used by Timeout, Interval and FrameInterval More... | |
| struct | cTimerRegistrationCompare |
Definition at line 40 of file lugre_timer.h.
| anonymous enum |
| anonymous enum |
| Lugre::cTimer::cTimer | ( | const size_t | iTime | ) |
| Lugre::cTimer::~cTimer | ( | ) | [virtual] |
Definition at line 54 of file lugre_timer.h.
Referenced by Lugre::cRadar::cRadar(), Lugre::cRadialGrid::cRadialGrid(), Lugre::cGame::RenderOneFrame(), and Lugre::cGame::Run().
| void Lugre::cTimer::StartFrame | ( | const size_t | iTime | ) |
Definition at line 25 of file lugre_timer.cpp.
References assert, IsCurFrameInInterval(), kListenerEvent_FrameInterval, kListenerEvent_Interval, kListenerEvent_Timeout, mfPhysStepTime, miCurFrameNum, miLastFrameTime, Lugre::cTimer::cTimerRegistration::miTime, miTimeSinceLastFrame, mlFrameIntervals, mlIntervals, mlTimeouts, PROFILE, and Lugre::cTimer::cTimerRegistration::Trigger().
Referenced by Lugre::cGame::RenderOneFrame().
| cTimer::cTimerRegistration * Lugre::cTimer::RegisterTimeoutListener | ( | cListener * | pListener, | |
| const size_t | iTimeOut, | |||
| void * | userdata = 0 | |||
| ) |
listener will be notified ONCE in about iTimeOut milliseconds (1000=1sec) after this call, but not during this frame
Definition at line 111 of file lugre_timer.cpp.
References miLastFrameTime, mlTimeouts, and PROFILE.
| cTimer::cTimerRegistration * Lugre::cTimer::RegisterIntervalListener | ( | cListener * | pListener, | |
| const size_t | iInterval, | |||
| void * | userdata = 0 | |||
| ) |
Definition at line 117 of file lugre_timer.cpp.
References miLastFrameTime, mlIntervals, and PROFILE.
| cTimer::cTimerRegistration * Lugre::cTimer::RegisterFrameIntervalListener | ( | cListener * | pListener, | |
| const size_t | iFrameIntervalExp, | |||
| void * | userdata = 0 | |||
| ) |
RegisterFrameIntervalListener takes an EXPONENT, i.e. passing 3 as iFrameIntervalExp will result in getting called every 2^3 = 1<<3 = 8 frames iFrameInterval = 2^iFrameIntervalExp
Definition at line 125 of file lugre_timer.cpp.
References assert, kMaxFrameIntervalExp, miLastFrameTime, mlFrameIntervals, and PROFILE.
Referenced by Lugre::cRadar::cRadar(), and Lugre::cRadialGrid::cRadialGrid().
| bool Lugre::cTimer::IsCurFrameInInterval | ( | const size_t | iInterval | ) | [inline] |
Definition at line 91 of file lugre_timer.h.
References IsFrameInInterval(), and miCurFrameNum.
Referenced by StartFrame().
| static size_t Lugre::cTimer::GetIntervalStart | ( | const size_t | iInterval | ) | [inline, static] |
| static bool Lugre::cTimer::IsFrameInInterval | ( | const size_t | iInterval, | |
| const size_t | iFrame | |||
| ) | [inline, static] |
Definition at line 93 of file lugre_timer.h.
References GetIntervalStart().
Referenced by IsCurFrameInInterval().
size_t Lugre::cTimer::miTimeSinceLastFrame = 1 [static] |
size_t Lugre::cTimer::miLastFrameTime = 0 [static] |
Definition at line 42 of file lugre_timer.h.
Referenced by cTimer(), RegisterFrameIntervalListener(), RegisterIntervalListener(), RegisterTimeoutListener(), and StartFrame().
size_t Lugre::cTimer::miCurFrameNum = 0 [static] |
Definition at line 43 of file lugre_timer.h.
Referenced by IsCurFrameInInterval(), and StartFrame().
float Lugre::cTimer::mfPhysStepTime = 0.0 [static] |
| std::multiset< cTimerRegistration*,cTimerRegistrationCompare> Lugre::cTimer::mlTimeouts |
Definition at line 99 of file lugre_timer.h.
Referenced by RegisterTimeoutListener(), and StartFrame().
| std::list< cTimerRegistration*> Lugre::cTimer::mlIntervals |
Definition at line 100 of file lugre_timer.h.
Referenced by RegisterIntervalListener(), and StartFrame().
| std::vector< std::list< cTimerRegistration*>* > Lugre::cTimer::mlFrameIntervals |
Definition at line 101 of file lugre_timer.h.
Referenced by RegisterFrameIntervalListener(), and StartFrame().
1.5.6