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:
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 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. 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_stdlib
functions for our own customFString
type
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