Class Module

Inheritance Relationships

Derived Types

Class Documentation

class legion::core::Module

interface for engine-modules, must be implemented legion::core::Engine::reportModule<T,…>()

Subclassed by legion::application::ApplicationModule, legion::audio::AudioModule, legion::core::CoreModule, legion::editor::detail::EditorEngineModule, legion::physics::PhysicsModule, legion::rendering::RenderingModule

Public Functions

virtual void setup() = 0
virtual priority_type priority () LEGION_IMPURE_RETURN(default_priority)

determines the execution priority of this module LEGION_IMPURE_RETURN


priority_type signed int8 higher is higher priority and get called first


default priority of the engine is 0.


call order for modules with the same priority is undefined.

virtual ~Module() = default

Protected Functions

template<size_type charc>
inline void addProcessChain(const char (&name)[charc])
template<typename SystemType, typename ...Args>
inline void reportSystem(Args&&... args)
template<typename component_type>
inline void reportComponentType()

Protected Static Attributes

static ecs::EcsRegistry *m_ecs
static scheduling::Scheduler *m_scheduler
static events::EventBus *m_eventBus