Class Engine

Class Documentation

class legion::core::Engine

Main top level engine abstraction. This class allows you to setup the engine with all the necessary modules and settings. This class also contains all the sub managers of the core systems. legion::core::Module legion::core::ecs::EcsRegistry legion::core::scenes::SceneManager legion::core::scheduling::Scheduler.

Public Functions

inline Engine(int argc, char **argv)
inline ~Engine()
template<class ModuleType, class ...Args>
inline void reportModule(Args&&... args)

reports an engine module

Template Parameters
  • ModuleType: the module you want to report

  • s: a signal that you want to pass arguments to the constructor of the Module

  • args: the arguments you want to pass legion::core::Module

inline void init()

Calls init on all reported modules and thus engine internals.


Needs to be called manually if LEGION_ENTRY was not used.


inline void run()

Runs engine loop.

inline std::vector<char*> &getCliArgs()

Public Static Attributes

static events::EventBus *eventbus