2.5 KiB
2.5 KiB
Infrastructure Overview
For developers to reference.
Targets
- yaze: Desktop application for Windows/macOS/Linux
- z3ed: Command Line Interface
- yaze_c: C Library
- yaze_py: Python Module
- yaze_ext: Extensions library
- yaze_test: Unit test executable
Directory Structure
- assets: Hosts assets like fonts, icons, assembly source, etc.
- cmake: Contains CMake configurations.
- docs: Contains documentation for users and developers.
- src: Contains source files.
- app: Contains the GUI editor
yaze - base: Contains the base data headers for
yaze_c - cli: Contains the command line interface
z3ed - ext: Contains the extensions library
yaze_ext - py: Contains the Python module
yaze_py - lib: Contains the dependencies as git submodules
- app: Contains the GUI editor
- test: Contains testing interface
yaze_test
Flow of Control
- app/yaze.cc
- Initializes
absl::FailureSignalHandlerfor stack tracing. - Runs the
core::Controllerloop.
- Initializes
- app/core/controller.cc
- Initializes SDLRenderer and SDLWindow
- Initializes ImGui, fonts, themes, and clipboard.
- Handles user input from keyboard and mouse.
- Updates
editor::MasterEditor - Renders the output to the screen.
- Handles the teardown of SDL and ImGui resources.
- app/editor/editor_manager.cc
- Handles the main menu bar
- Handles
absl::Statuserrors as popups delivered to the user. - Update all the editors in a tab view.
Rom
The Rom class provides methods to manipulate and access data from a ROM.
Bitmap
This class is responsible for creating, managing, and manipulating bitmap data, which can be displayed on the screen using SDL2 Textures and the ImGui draw list.