Editor

The Editor UI system works like this

  1. The engine runtime is initiated
  2. The editor is started (Editor.cpp)
  3. Resources such as textures and thumbnails are loaded (Editor.cpp)
  4. A Dear ImGui context is created (Editor.cpp)
  5. A theme is loaded if the user has one (Editor.cpp)
  6. Tick starts
  7. The Dear ImGui context is updated (Editor.cpp)
  8. All the widgets are updated (Editor.cpp)
  9. Frame finishes

Widgets

Only the most notable widgets will be listed

Asset slot

The asset slot accepts an asset discriminator to sort assets by type. Asset slots are used for the Details Panel where they come particularly handy for easy asset assignment.

Editor Viewport

Contains the functionality for displaying the game preview to a Dear ImGui window, as well as the whole transformation gizmo system

Filesystem

Controls the Filesystem widget and everything related to it. Notable for being a very complicated class that needs a refactor.

Memory Editor

The memory editor is your standard hex/binary editor, that is going to be used for inspecting the Vulkan shader cache but is currently not able to do that

Settings

Lists all the GUI settings functions

Ship

Used for shipping your production ready application

Statistics

Uses many types of charts to highlight statistics. Notable for both not being performant and being hard to refactor.

Terminal emulator

A soon-to-be released terminal emulator widget

Warnings

Contains all warning messages

UI

The UI works exactly the same as the Editor UI, setup and functionality wise. However, it needs to be kept in mind that the UI uses an event queue, while the regular Editor UI has its widgets baked in the code