Skip to content

Repository files navigation

External Overlay

C++20 Platform License Build Tool

A lightweight, modular C++ desktop application for rendering custom graphical user interfaces and visual overlays on Windows.


Project Status

This repository is actively maintained. The project features a stable C++20 core architecture with modular rendering, configuration management, and interactive visual components.


Overview

External Overlay is a desktop application framework that displays custom graphical interfaces, control panels, and visual widgets over desktop windows. The project isolates user interface rendering from underlying data processing, ensuring high responsiveness and low system resource overhead.


Why This Project?

Building reliable desktop overlays often suffers from tight coupling, complex platform dependencies, or intrusive process injection. External Overlay addresses these challenges by offering:

  • Non-Intrusive Design: Operates entirely as a standalone user-mode window layer without modifying external application binaries.
  • Data Schema Decoupling: Separates dynamic data mappings into external JSON schema files so structural updates do not require recompiling code.
  • Modular C++ Architecture: Organizes component domains into isolated public headers (include/) and implementations (src/) for long-term maintainability.

Features

  • Modern C++ Core: Built with standard C++20 features, clear design patterns, and strong component encapsulation.
  • Hardware-Accelerated Overlay: Direct3D 11 graphics context providing smooth, transparent window presentation.
  • Graphical Control Panel: Tabbed user interface built with Dear ImGui for customizing settings, colors, and controls.
  • Profile Persistence: Save and load application configurations using external JSON profiles (configs/default.json).
  • Spatial Minimap Widget: Integrated 2D map display component for spatial layout visualization (render/map_manager).
  • Automated CMake Setup: CMake build configuration supporting one-click release compilation (build.bat).

Dependencies & Requirements

System Requirements

  • Operating System: Windows 10 or Windows 11 (64-bit)
  • Graphics API: Direct3D 11 compatible graphics runtime

Build Dependencies

  • Compiler: Microsoft Visual C++ (MSVC) with C++20 support included in Visual Studio 2022
  • Build System: CMake 3.20 or higher
  • SDK: Windows 10/11 SDK

Quick Start

Step 1: Open Terminal in Repository Root

Navigate to the repository directory on your system.

Step 2: Build the Application

Execute the automated build script to configure CMake and compile the release binary:

build.bat

Step 3: Run the Executable

Launch the compiled application directly or execute the helper launcher script:

start.bat

Configuration

The application loads runtime settings from JSON profiles stored in the configs/ directory.

  • Default Profile: configs/default.json
  • Configurable Settings:
    • UI themes, colors, and window layout preferences
    • Keybindings for toggling interface visibility
    • Frame rate caps and rendering performance toggles

Edit configs/default.json directly or use the in-app ImGui control panel to adjust options at runtime.


Keybindings

Key Function
INSERT Toggle graphical interface menu visibility
END Terminate and safely exit the application

Repository Structure Overview

External-Overlay/
├── assets/                # Visual graphics assets and map textures
├── configs/               # Application configuration profiles (.json)
├── docs/                  # Architectural documentation and role specifications
├── include/               # Public C++ interface headers (.hpp)
├── output/                # External data mapping schemas (.json)
├── src/                   # C++ implementation source files (.cpp)
├── vendor/                # Third-party libraries (Dear ImGui and backends)
├── build.bat              # Automated build compilation script
├── CMakeLists.txt         # Primary CMake build system configuration
└── README.md              # Project entrypoint documentation

For complete architectural details, see ARCHITECTURE.md.


Educational & Research Disclaimer

This project is created strictly for educational purposes, software engineering research, and desktop UI architectural studies. It is provided "as is" without warranty of any kind. Users are responsible for complying with local software guidelines and third-party terms of service.


Acknowledgements & Credits

Special thanks to the contributors and third-party projects that make this project possible:

  • Dear ImGui — Immediate mode GUI framework
  • nlohmann/json — JSON serialization library for C++
  • Contributors:

Support & Guidance

If you encounter build errors or have feature questions:

  • Review the FAQ.md for quick solutions.
  • Refer to CONTRIBUTING.md for environment setup and contribution standards.

Versioning

This project follows Semantic Versioning (SemVer). Version history and change logs are tracked in CHANGELOG.md.


License

This project is licensed under the MIT License. See the LICENSE file for complete details.

About

High-performance, standalone native C++20 user-mode desktop overlay engine built with Direct3D 11, Dear ImGui, MSVC, CMake, and structured nlohmann::json parsing.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages