-
-
Notifications
You must be signed in to change notification settings - Fork 5
Core files
In this page, we will list and explain what each of these core files does.
The Components
directory has the following files:
-
InlineComponent
- Defines the abstract class for inline components. Documentation -
WindowComponent
- Defines the abstract class for window components. Documentation -
TitlebarComponent
- Defines the abstract class for title bar components. Documentation -
Instance
- Defines the baseInstance
class. Documentation
The Events
directory contains the following files:
-
Input
- Defines the Input interface. Documentation
The Interfaces
directory contains the following files:
-
RendererInterface
- Defines theRenderer
interface. Documentation -
WindowInterface
- Defines theWindow
. Documentation
The Platform
directory contains the following files:
-
WASM
- Platform-specific function when targeting WASM
The Core
directory contains the following files:
-
Core.hpp
- A bunch of header files that are widely used internally -
Defines.hpp
- Defines and constants that are used internally. Documentation -
Global
- Defines the global internal variable. Documentation -
Types.hpp
- Contains many type definitions and aliases. Documentation -
Utilities
- The Utilities interface is defined here. Documentation -
CDeallocation.hpp
- A header containing a struct that stores intermediate data for the C API. Documentation
The Modules
folder contains the modules + Modules.hpp
which includes all modules.
Documentation
The Manager
folder contains the Modules
interface and the ModulesManager
internal classes.
Documentation,
Internal Documentation
The Renderer
folder contains the rendering code. The Renderer
files define the internal renderer and the RendererData
struct.
Documentation
The Texture
files defined the user-facing Texture
class.
This class defines internal code that sets up dear imgui. Documentation
This class defines some glue code that integrates dear imgui with our own custom types. They currently implement:
-
imgui_stdlib
functions for our own customFString
type
The Renderer/GenericRenderer
folder contains a generic renderer interface, as well as a texturing interface, that are then inherited by the OpenGL, Vulkan and WebGPU renderers respectively.
Each folder has the following classes:
-
<backend name>Renderer
- Contains rendering code for the given backend -
<backend name>Texture
- Contains texture code for the given backend
The Renderer/Window
folder contains the code for the internal window management class. Documentation.
The following translation units are used to separate the window code into logical multiple modules:
-
Callbacks.cpp
- contains all callback code -
Monitors.cpp
- contains all code related to monitors and monitor handling -
Platform.cpp
- contains all platform functions. On macOS, this code calls the functions from themacOS
subdirectory -
Window.cpp
- all remaining generic window code
It also contains a macOS
subdirectory that provides us with the platform-specific functionality for the Window
interface, by calling Objective-C code.
Includes header files that are going to be used by all files generated under the Source
directory.
Includes all header files part of the C API. Included by Framework.hpp
.
This project is supported by all the people who joined our discord server and became beta testers. If you want to join the discord you can click here.
- Home
- Beginner content
- Install guide
- Creating and using the UI components
- The Instance
- The Init Info struct
- Textures
- Logging
- Unicode support
- Additional features
- Client-side bar
- Custom type definitions
- Memory management
- C API development
- Config files and Folders
- Interfaces
- Internal Event safety
- Customising the build system
- Modules system
- Collaborating with others
- Advanced content
- Developer and contributor resources
- Misc