NGUI is a 100% native GUI library for the Nitpick programming language.
The primary goal of NGUI is to provide developers with a powerful, fast, and feature-rich graphics and user interface framework without ever having to compromise on the safety and formal verification guarantees of Nitpick. By being 100% native, we completely bypass the FFI (Foreign Function Interface) gateway, ensuring that memory safety and error propagation hold true from the application logic all the way down to the pixel rendering.
NO C/C++ code is allowed in this repository.
- Phase 1: Raylib-style Simplicity
Initial focus is on creating a straightforward, easy-to-use API similar to
raylib, making it simple to open a window, draw shapes, handle input, and render text. - Phase 2: SDL2-level Features Expanding into more comprehensive windowing, event handling, audio, and hardware-accelerated 2D features.
- Phase 3: Advanced Graphics APIs Full support for modern rendering backends such as OpenGL and Vulkan for maximum performance and 3D capabilities.
- Rich Text Support: Advanced text formatting with
RichTextWidgetandTextSpanproviding independent styling (bold, italic, colors). - Gestures & Interaction: Complete gesture recognition system (Tap, Pan, Swipe) built on a modular
GestureRecognizertrait. - Drag & Drop: Robust drag-and-drop architecture using
DragDropHookfor handling both internal UI drags and external OS file drops. - Interactive UI: Input handling, state management, and declarative components (Buttons, Input Fields).
- Layout Engine: Flexbox-like layout engine supporting advanced alignment and wrapping constraints.
- Hardware Acceleration: Native GPU backend interface (in progress).
- Resource Management: Automatic GC-free lifecycle hooks for precise memory cleanup via
LifecycleHook.
Instructions coming soon.
See the LICENSE file for more details.