28 #ifndef BERSERK_SCHEDULER_HPP
29 #define BERSERK_SCHEDULER_HPP
36 #include <unordered_map>
170 float elapsed = 0.0f;
171 float interval = 0.0f;
176 bool forever =
false;
178 bool delayed =
false;
182 void Update(
float dt);
183 bool Exhausted(Scheduled &scheduled)
const;
188 std::unordered_map<Handle, Scheduled> mScheduled;
191 std::vector<Handle> mPendingRemove;
193 std::vector<std::pair<Handle, Scheduled>> mPendingAdd;
195 std::vector<std::pair<Handle, bool>> mPendingPause;
198 std::vector<PerformFunc> mToPerform;
199 std::vector<PerformFunc> mToPerformExec;
200 mutable std::mutex mMutex;
206 float mTimeScale = 1.0f;
#define BRK_NS_END
Definition: Config.hpp:48
#define BRK_API
Definition: Config.hpp:32
std::size_t size_t
Definition: Typedefs.hpp:49
std::uint32_t uint32
Definition: Typedefs.hpp:44
Root manager class.
Definition: Engine.hpp:72
Scheduler is responsible for triggering the scheduled callbacks.
Definition: Scheduler.hpp:59
BRK_API void Cancel(Handle handle)
Unschedule function associated with specified handle.
Definition: Scheduler.cpp:93
size_t Handle
Definition: Scheduler.hpp:66
BRK_API Handle ScheduleOnce(ScheduledFunc func, float delay, bool paused=false)
Schedule function for execution on game thread.
Definition: Scheduler.cpp:55
static const uint32 REPEAT_FOREVER
Definition: Scheduler.hpp:68
std::function< void(float)> ScheduledFunc
Definition: Scheduler.hpp:62
std::function< void()> PerformFunc
Definition: Scheduler.hpp:64
BRK_API void Resume(Handle handle)
Resume scheduling of function associated with specified handle.
Definition: Scheduler.cpp:101
BRK_API void ScheduleOnGameThread(PerformFunc func)
Schedule function to perform exactly on the game thread.
Definition: Scheduler.cpp:88
BRK_API Handle ScheduleUpdate(ScheduledFunc func, uint32 repeat=0, float delay=0.0f, bool paused=false)
Schedule function for execution on game thread.
Definition: Scheduler.cpp:70
BRK_API Handle Schedule(ScheduledFunc func, float interval, uint32 repeat=0, float delay=0.0f, bool paused=false)
Schedule function for execution on game thread.
Definition: Scheduler.cpp:36
BRK_API void Pause(Handle handle)
Pause scheduling of function associated with specified handle.
Definition: Scheduler.cpp:97
Definition: GLDevice.cpp:46