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 baseInstanceclass. Documentation
Core/Events
The Events directory contains the following files:
Core/Interfaces
The Interfaces directory contains the following
files:
Input- Defines the Input interface. DocumentationLayoutsInterface- Defines the UI layouts interface. DocumentationPluginInterface- Defines the plugin interface. DocumentationRendererInterface- Defines theRendererinterface. 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. DocumentationFrameworkMain- A bridge between the framework and the entry point application. 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/RendererUtils
The RendererUtils interface for building custom
renderers. Documenation.
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
ImGui
This folder contains the following:
ImGui
This class defines internal code that sets up dear imgui. Documentation
UImGuiExtensions
This class defines some glue code that integrates dear imgui with our own custom types. They currently implement:
imgui_stdlibfunctions for our own customFStringtype
ClientSideBar
An implementation of a native dear imgui client-side bar window decorations.
Window
The Window folder contains the code for
GenericWindow, GenericMonitor and the default
GLFW window implementation as well as a small utility
adapter Window class.
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
- Building better titlebar menus
- 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
- Loading dynamic libraries at runtime
- Understanding the library layout
- Compilation mode modifiers
- Supporting plugins
- Production export and deployment
- OS integration tips
- Targeting WASM
- Using a custom rendering engine:
- Using a custom windowing backend:
- Developer and contributor resources
- Misc