Description
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 uses C++20 features; although C++20 compiler support is currently patchy this isn't a problem given the expected neoGFX 1.0 release date of Q4, 2021.
neoGFX alternatives and similar libraries
Based on the "GUI" category.
Alternatively, view neoGFX alternatives based on common mentions on social networks and blogs.
-
webview
Tiny cross-platform webview library for C/C++. Uses WebKit (GTK/Cocoa) and Edge WebView2 (Windows). -
libui
Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports. -
FTXUI
Features: - Functional style. Inspired by [1] and React - Simple and elegant syntax (in my opinion). - Support for UTF8 and fullwidth chars (→ 测试). - No dependencies. - Cross platform. Linux/mac (main target), Windows (experimental thanks to contributors), - WebAssembly. - Keyboard & mouse navigation. Operating systems: - linux emscripten - linux gcc - linux clang - windows msvc - mac clang -
SixtyFPS
DISCONTINUED. Slint is a toolkit to efficiently develop fluid graphical user interfaces for any display: embedded devices and desktop applications. We support multiple programming languages, such as Rust, C++ or JavaScript. [Moved to: https://github.com/slint-ui/slint] -
GacUI
GPU Accelerated C++ User Interface, with WYSIWYG developing tools, XML supports, built-in data binding and MVVM features. -
Turbo Vision
A modern port of Turbo Vision 2.0, the classical framework for text-based user interfaces. Now cross-platform and with Unicode support. -
cuda-api-wrappers
Thin C++-flavored header-only wrappers for core CUDA APIs: Runtime, Driver, NVRTC, NVTX. -
xtd
Free open-source modern C++17 / C++20 framework to create console, GUI (forms like WinForms) and unit test applications and libraries on Microsoft Windows, Apple macOS and Linux. -
CTPG
Compile Time Parser Generator is a C++ single header library which takes a language description as a C++ code and turns it into a LR1 table parser with a deterministic finite automaton lexical analyzer, all in compile time. -
ncurses
snapshots of ncurses - see https://invisible-island.net/personal/git-exports.html (no pull requests are accepted) -
fox-toolkit
Unofficial Zenotech specific mirror of fox-toolkit; please refer to upstream site for latest version -
Brisk
Cross-platform C++20 GUI framework featuring MVVM architecture, reactive capabilities, and scalable, accelerated GPU rendering. -
NotificationManager
A thread-safe, easy-to-use, utility for sending and receiving notifications. It allows you to decouple different modules of your application.
SaaSHub - Software Alternatives and Reviews
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of neoGFX or a related project?
Popular Comparisons
README
Introduction
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 uses C++20 features; although C++20 compiler support is currently patchy this isn't a problem given the expected neoGFX 1.0 release date of Q4, 2021.
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, 2.5D and 3D game support: sprites, objects and physics;
- Pure ECS (Entity-component-system) usable by both games and apps;
- 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 | WID* | Windows OpenGL; widget library feature complete; UI design tool |
v1.00 | WID + 12 months | Linux OpenGL; scripting engine |
v1.10 | WID + 24 months | Vulkan; Android support; physics engine |
v1.20 | WID + 36 months | macOS support |
* When It's Done
Implementation Progress
Feature | % done | TODO |
---|---|---|
Window | 95 | Drop shadow |
Dialog | 90 | Default button |
Message Box | 100 | |
Menu | 100 | |
Nested windows | 90 | |
MDI | 0 | |
Tabs | 95 | Vertical tabs |
Toolbars | 90 | Drop-down button support |
Layout Managers | 95 | Need to fully support size policies |
Label | 100 | |
Button | 100 | |
Table View | 95 | Selection; cell widget |
Tree View | 95 | |
List View | 95 | |
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 | |
Progress Bar | 95 | |
Docks | 75 | |
Font Picker | 99 | Monospace filter |
Colour Gradient Selector | 95 | Swatch library |
Colour Picker | 100 | |
Date/Time | 0 | |
File Browsers (Native) | 99 | |
Drag and drop | 75 | |
UI/Resource Description (RJSON) | 40 | |
tool: neoGFX Design Studio | 10 | |
i18n | 70 | |
l10n | 0 | UK English, US English, French, German, Chinese |
HID: Game Controllers | 80 | Calibration/settings UI; DirectInput button mapping |
Multi-monitor | 50 | DPI changes when changing or dragging between monitors |
Scene Graph | 0 | |
Skins | 40 |