Before we get into modules, here is a great place to introduce you to the internal even system and event safety.

Event safety is documented both on the wiki and in code as comments. If you find a class or function missing such information, please make an issue or submit a pull request.

Internal Events

Currently, we have the following internal events:

  1. Startup - This is when the application first starts, the constructor of the Instance is called at this point
  2. Post-Startup - At any point after startup
  3. Begin - Window, renderer and modules are instantiated
  4. Post-begin - At any point after begin
  5. GUI - Before or during GUI layer initialization(doesn't mean it's initialized, and any UI code will break here), i.e. Instance::onEventConfigureStyle
  6. All ready - After all initial setup is done, this includes tick events
  7. Pre-destruct - Before all systems are shut down
  8. Destruct - When the destructor of the Instance is called

Additionally, you may notice and event named Any time, which means that the given function can be called safely at any point.