#ifndef ENGINE_HPP_ #define ENGINE_HPP_ #include #include #include #include "ZydecoCommon.hpp" #include "ThreadLooping.hpp" #include "IEventQuitSubscriber.hpp" #include "IUpdateable.hpp" class IEventHandler; class ITimer; class Renderer; class Engine : public IEventQuitSubscriber { public: Engine(IEventHandler& r_event_handler, ITimer& r_core_timer, Renderer& r_renderer); ~Engine(); void OnQuitEvent() override; void Execute(); protected: IEventHandler& m_rEventHandler; ITimer& m_rCoreTimer; Renderer& m_rRenderer; std::vector m_threads; std::atomic m_aIsExiting; }; #endif /* ENGINE_HPP_ */