Welcome to the MetaImGUI API documentation. MetaImGUI is a professional C++20 template for creating ImGui-based desktop applications with complete CI/CD infrastructure.
Overview
MetaImGUI provides a solid foundation for building cross-platform desktop applications using:
- ImGui v1.92.4 - Immediate mode GUI library
- GLFW 3.x - Cross-platform window management
- OpenGL 4.6 - Graphics API (4.1 on macOS)
- C++20 - Modern C++ with latest features
Key Features
Core Components
Architecture
The codebase follows SOLID principles with clear separation of concerns:
┌─────────────────┐
│ Application │ ← Main orchestration
├─────────────────┤
│ WindowManager │ ← GLFW + OpenGL
│ UIRenderer │ ← ImGui rendering
│ ConfigManager │ ← Settings persistence
│ Logger │ ← Logging system
│ DialogManager │ ← UI dialogs
│ ThemeManager │ ← Styling
│ Localization │ ← i18n support
│ UpdateChecker │ ← Update notifications
└─────────────────┘
Quick Start
Basic Usage
Logging
Logger::Instance().Initialize("logs/app.log", LogLevel::Info);
LOG_ERROR(
"Failed to load file: {}", filename);
Configuration
ConfigManager config;
config.Load();
auto windowSize = config.GetWindowSize();
config.SetString("theme", "dark");
config.Save();
Localization
Localization::Instance().LoadTranslations("resources/translations/translations.json");
Localization::Instance().SetLanguage("es");
std::string greeting = Localization::Instance().Get("menu.file");
Building
Prerequisites
- CMake 3.16+
- C++20 compatible compiler (GCC 10+, Clang 10+, MSVC 2019 16.11+)
- GLFW 3.x
- OpenGL 4.6+ (or 4.1+ on macOS)
- libcurl (for update checking)
Build Commands
# Setup dependencies
./setup_dependencies.sh
# Configure and build
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallel
# Run
./build/MetaImGUI
CMake Options
BUILD_TESTS - Build test suite (default: ON)
ENABLE_COVERAGE - Enable code coverage (default: OFF)
CMAKE_BUILD_TYPE - Build type: Debug, Release, RelWithDebInfo, MinSizeRel
Testing
# Build with tests
cmake -B build -DBUILD_TESTS=ON
cmake --build build
# Run tests
ctest --test-dir build --output-on-failure
Code Coverage
# Quick coverage report
./scripts/run_coverage.sh
# Manual
cmake -B build -DENABLE_COVERAGE=ON -DBUILD_TESTS=ON
cmake --build build
cd build && make coverage
Platform Support
- Linux - Ubuntu 20.04+, Fedora 33+, Arch, Debian
- Windows - Windows 10/11 with MSVC 2019+
- macOS - macOS 11+ with Apple Clang
Additional Resources
License
GNU General Public License v3.0. See LICENSE for details.