Skip to content

Architecture: Engine and Modules

Justin edited this page Apr 2, 2023 · 7 revisions

[Under construction]

Screenshot 2023-04-01 at 11 28 55 PM

Overview

The system is structured as an engine class surrounded by a series of system modules. Each module manages other data and classes that the engine does not know about. For example, the engine starts the RendererFrontend but has no knowledge of the RendererBackend which the frontend manages.

Application

StratusApplication.h

This is an extension of the SystemModule interface. This is the main class for an application executable. If you look at the source code under Examples/ you will find that each example has 1 class that implements Application which defines the entry point for that example's executable.

The Application serves as the single point of contact between the engine and application space.

Engine

StratusEngine.h

  1. Initialize all system modules in the correct order
  2. Run the main update loop
  3. Shut down all system modules in the correct order

GraphicsDriver

StratusGraphicsDriver.h

Window

StratusWindow.h

InputManager

StratusWindow.h

TaskSystem

StratusTaskSystem.h

RendererFrontend

StratusRendererFrontend.h

ResourceManager

StratusResourceManager.h

MaterialManager

StratusMaterial.h

EntityManager

StratusEntityManager.h

Log

StratusLog.h