Introduction

January 10, 2026 ยท View on GitHub

Introduction

neoGFX is a C++ app/game engine and development platform targeted at app and game developers that wish to leverage modern GPUs for performant application user interfaces and game graphics. neoGFX is still a work in progress (incomplete) so is not yet suitable for making apps or games. Currently neoGFX has only been built for and tested on Windows.

Features (when version 1.0 released)

  • clean modern C++ design leveraging C++20 and including full exception safety supporting various widget allocation patterns (stack, member variable or free store);
  • use of standard non-proprietary C++ data types including using standard string classes (UTF-8 encoding) and containers from the C++ standard library;
  • simple, easy to use multi-threaded event system (an improvement over traditional signals and slots);
  • no baggage: neoGFX primarily contains only the GUI and graphics related functionality needed for creating apps and games;
  • full library of widgets and layout managers specifiable in an RJSON (Relaxed JSON) derived declarative UI description language drag/drop editable using the included design tool, neoGFX Design Studio;
  • CSS3 style sheet support with support for custom skins;
  • scripting engine, neos, that will be able to support a wide range of scripting languages (on release: neoscript, JavaScript and Lua);
  • sub-pixel text rendering;
  • simple window style for specifying that a window is "nested" rather than being a separate native desktop window;
  • "text_edit" widget supports multiple fonts, text colours (with optional gradient effects), colour emojis and rendering text in columns;
  • "Green" and "Arcade" modes to optimize CPU power consumption, fight #ClimateChange!
  • GPU shader rendered CSS3 compliant gradients with optional gaussian smoothing;
  • MVC (model-view-controller) related classes supporting robust and fast app design;
  • optional MDI support utilizing "nested" windows;
  • 2D, 2.5D and 3D game support: sprites, objects and physics;
  • Pure ECS (Entity-component-system) usable by both games and apps;
  • flexible asset management: texture images (e.g PNGs) can be stored in .zip archives which can be optionally embedded inside the program binary accessible using simple URLs;
  • support for OpenGL, DirectX and Vulkan.

Roadmap

VersionETAFeatures
v0.99WID*Windows OpenGL; widget library feature complete; UI design tool
v1.00WID + 12 monthsLinux OpenGL; scripting engine
v1.10WID + 24 monthsVulkan; Android support; physics engine
v1.20WID + 36 monthsmacOS support

* When It's Done

Implementation Progress

Feature% doneTODO
Window95Drop shadow
Dialog90Default button
Message Box100
Menu100
Nested windows90
MDI0
Tabs95Vertical tabs
Toolbars90Drop-down button support
Layout Managers95Need to fully support size policies
Label100
Button100
Table View95Selection; cell widget
Tree View95
List View95
Text Edit90Columns; rich text (HTML); undo/redo
Line Edit100
Spin Box100
Slider90Keyboard
Check Box100
Radio Button100
Combo Box95Glob and regex filters; review UX.
Group Box100
Tool Tips0
Status Bar100
Progress Bar95
Docks75
Font Picker99Monospace filter
Colour Gradient Selector95Swatch library
Colour Picker100
Date/Time0
File Browsers (Native)99
Drag and drop75
UI/Resource Description (RJSON)40
tool: neoGFX Design Studio10
i18n70
l10n0UK English, US English, French, German, Chinese
HID: Game Controllers80Calibration/settings UI; DirectInput button mapping
Multi-monitor50DPI changes when changing or dragging between monitors
Scene Graph0
Skins40