diff options
Diffstat (limited to 'src/libjin/Time/je_timer.h')
-rw-r--r-- | src/libjin/Time/je_timer.h | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/libjin/Time/je_timer.h b/src/libjin/Time/je_timer.h index fabde28..31cd322 100644 --- a/src/libjin/Time/je_timer.h +++ b/src/libjin/Time/je_timer.h @@ -22,12 +22,14 @@ namespace JinEngine typedef std::function<void(void*)> TimerCallback; + typedef std::function<void(void*)> FinishCallback; + /// /// /// class Handler { - private: + public: friend class Timer; enum Type { @@ -35,16 +37,18 @@ namespace JinEngine AFTER, REPEAT, }; - Handler(Type type, int duration, int count = 0, TimerCallback callback = nullptr, void* paramters = nullptr); + Handler(Type type, float duration, int count = 0, TimerCallback callback = nullptr, void* paramters = nullptr, FinishCallback finishcallback = nullptr); virtual ~Handler(); - void process(int ms); + void process(float dt); - int duration; + protected: int count; - int tickdown; int countdown; + float duration; + float tickdown; Type type; TimerCallback callback; + FinishCallback finishCallback; void* paramters; bool canceled; }; @@ -62,22 +66,22 @@ namespace JinEngine /// /// /// - void update(int ms); + void update(float dt); /// /// /// - Handler* every(int ms, TimerCallback callback, void* paramters); + Handler* every(float dt, TimerCallback callback, void* paramters, FinishCallback finish); /// /// /// - Handler* after(int ms, TimerCallback callback, void* paramters); + Handler* after(float dt, TimerCallback callback, void* paramters, FinishCallback finish); /// /// /// - Handler* repeat(int ms, int count, TimerCallback callback, void* paramters); + Handler* repeat(float dt, int count, TimerCallback callback, void* paramters, FinishCallback finish); /// /// |