Difference between revisions of "Main Page"

From neoGFX
Jump to: navigation, search
Line 62: Line 62:
'''[[Coding Guidelines]]'''
'''[[Coding Guidelines]]'''
[http://neogfx.io/doxygen/html/ Class Reference]
'''[http://neogfx.io/doxygen/html/ Class Reference]'''

Revision as of 22:02, 24 October 2017

neoGFX Cross-Platform C++ GPU-based GUI/Game Library and Framework -- Coming Soon


neoGFX is a cross-platform C++ GPU-based GUI/game library. neoGFX is open source with its public repository hosted on GitHub. As of May 2017 version 1.0 of neoGFX is about 75% complete; on release of version 1.0 the intention is that neoGFX will be dual licensed (licensable with LGPLv3 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;
  • 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;
  • "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;
  • 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, SDL, 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 Winter 2017 Windows OpenGL; widget library feature complete; GUI designer tool
v1.00 Spring 2018 Linux OpenGL; Vulkan; scripting engine
v1.10 Summer 2018 Android support; physics engine
v1.20 Winter 2018 macOS support

Recent screenshot (May 2017):



Coding Guidelines Class Reference