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

Return

priority_type signed int8 higher is higher priority and get called first

Note

default priority of the engine is 0.

Note

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