i42output / neoGFX

Cross-platform GPU-oriented C++ application/game framework
http://neogfx.org/
GNU General Public License v3.0
543 stars 51 forks source link
cpp css ecs game-library gpu gui lua luajit skin widget xml

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.

Features (when version 1.0 released)

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 90 Columns; rich text (HTML); undo/redo
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