In this page, we will list and explain what each of these core files does.
Core/Components
The Components
directory has the following files:
InlineComponent
- Defines the abstract class for inline components. DocumentationWindowComponent
- Defines the abstract class for window components. DocumentationTitlebarComponent
- Defines the abstract class for title bar components. DocumentationInstance
- Defines the baseInstance
class. Documentation
Core/Events
The Events
directory contains the following files:
Input
- Defines the Input interface. Documentation
Core/Interfaces
The Interfaces
directory contains the following
files:
RendererInterface
- Defines theRenderer
interface. DocumentationWindowInterface
- Defines theWindow
. Documentation
Core/Platform
The Platform
directory contains the following files:
WASM
- Platform-specific function when targeting WASM
Core/
The Core
directory contains the following files:
Core.hpp
- A bunch of header files that are widely used internallyDefines.hpp
- Defines and constants that are used internally. DocumentationGlobal
- Defines the global internal variable. DocumentationTypes.hpp
- Contains many type definitions and aliases. DocumentationUtilities
- The Utilities interface is defined here. DocumentationCDeallocation.hpp
- A header containing a struct that stores intermediate data for the C API. Documentation
Modules/
The Modules
folder contains the modules +
Modules.hpp
which includes all modules. Documentation
Modules/Manager
The Manager
folder contains the Modules
interface and the ModulesManager
internal classes. Documentation,
Internal
Documentation
Renderer
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.
Renderer/ImGui/ImGui
This class defines internal code that sets up dear imgui. Documentation
Renderer/ImGui/UImGuiExtensions
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
Renderer/GenericRenderer, Renderer/OpenGL, Renderer/Vulkan & Renderer/WebGPU
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
Renderer/Window
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 codeMonitors.cpp
- contains all code related to monitors and monitor handlingPlatform.cpp
- contains all platform functions. On macOS, this code calls the functions from themacOS
subdirectoryWindow.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.
Framework.hpp
Includes header files that are going to be used by all files
generated under the Source
directory.
C/UImGuiCAPI.h
Includes all header files part of the C API. Included by
Framework.hpp
.
- 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