Main Page

From neoGFX
Jump to: navigation, search

neoGFX C++ Application/Game Engine and Development Platform -- Coming Soon


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.

neoGFX is open source with its public repository hosted on GitHub. As of May 2018 version 1.0 of neoGFX is about 80% complete; on release of version 1.0 the intention is that neoGFX will be dual licensed (licensable with GPLv3 or a commercial licence).

Features (when version 1.0 released):

  • clean modern C++ design 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 (initially) game support: sprites and 2D physics;
  • 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.

Initial design goals will be:

  • for the API to be as clean and easy to use as possible;
  • no reliance on macro-based code generation used by certain other GUI libraries;
  • to be as fast as possible (after all this is C++) with compiled binaries having as small a memory footprint as possible with no huge redistributables;
  • 3rd party dependencies include: Boost, FreeType and HarfBuzz.

The plan is for v1.0 supported platforms to be Windows (desktop) and Linux (desktop) followed later with OS X, iOS and Android support.


Version ETA Features
v0.99 Q3, 2021 Windows OpenGL; widget library feature complete; UI design tool
v1.00 Q4, 2021 Linux OpenGL; scripting engine
v1.10 Q2, 2022 Vulkan; Android support; physics engine
v1.20 Q4, 2022 macOS support

Recent screenshot (May 2018):



Coding Guidelines

Event System

Class Reference