Introduction

neoGFX is a cross-platform GPU-oriented C++ application/game framework. 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 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 XML using the included GUI designer tool;
  • CSS3 style sheet support with support for custom skins;
  • scripting engine (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;
  • 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.

Roadmap

Version ETA Features
v0.99 Winter 2018 Windows OpenGL; widget library feature complete; GUI designer tool
v1.00 Summer 2019 Linux OpenGL; Vulkan; scripting engine
v1.10 Winter 2019 Android support; physics engine
v1.20 Summer 2020 macOS support

Implementation Progress

Feature % done TODO
Window 95 Drop shadow
Dialog 90 Default button
Message Box 100  
Menu 100  
Nested windows 25  
MDI 0  
Tabs 90 Tabs below and on the side
Toolbars 90 Drop-down button support
Layout Managers 95 Need to fully support size policies
Label 100  
Button 100  
Table View 85 Selection; icon; cell widget; cell check box
Tree View 0  
List View 75  
Text Edit 85 Columns; rich text (HTML); undo/redo; performance optimization
Line Edit 100  
Spin Box 100  
Slider 90 Keyboard
Check Box 100  
Radio Button 100  
Combo Box 95 Glob and regex filters; review UX.
Group Box 100  
Tool Tips 0  
Status Bar 100  
Font Picker 25  
Colour Gradient Selector 100  
Colour Picker 100  
File Browsers (Native) 0  
Drag and drop 10  
XML Resource Description 0  
i18n 0  
l10n 0 UK English, US English, French, German, Chinese
Skins 0  

Last updated: 13/05/2018