Difference between revisions of "Main Page"

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

Revision as of 18:02, 3 May 2018

neoGFX Cross-Platform GPU-Oriented C++ Application/Game Framework -- Coming Soon


neoGFX is a cross-platform GPU-oriented C++ application/game framework. 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;
  • 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.

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 Spring 2018 Windows OpenGL; widget library feature complete; GUI designer tool
v1.00 Summer 2018 Linux OpenGL; Vulkan; scripting engine
v1.10 Winter 2018 Android support; physics engine
v1.20 Summer 2019 macOS support

Recent screenshot (May 2017):



Coding Guidelines

Event System

Class Reference