Difference between revisions of "Main Page"

From neoGFX
Jump to: navigation, search
(Introduction)
(Introduction)
Line 43: Line 43:
 
|-
 
|-
 
| v0.99
 
| v0.99
| Spring 2020
+
| Q3, 2021
 
| Windows OpenGL; widget library feature complete; UI design tool
 
| Windows OpenGL; widget library feature complete; UI design tool
 
|-
 
|-
 
| v1.00
 
| v1.00
| Summer 2020
+
| Q4, 2021
 
| Linux OpenGL; scripting engine
 
| Linux OpenGL; scripting engine
 
|-
 
|-
 
| v1.10
 
| v1.10
| Winter 2020
+
| Q2, 2022
 
| Vulkan; Android support; physics engine
 
| Vulkan; Android support; physics engine
 
|-
 
|-
 
| v1.20
 
| v1.20
| Summer 2021
+
| Q4, 2022
 
| macOS support
 
| macOS support
 
|}
 
|}

Revision as of 00:48, 28 April 2020

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

Introduction

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 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.

Roadmap:

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):

2018.png

Documentation

Coding Guidelines

Event System

Class Reference