Josh User Interface
Fourth Time's The Charm!™
JUI is a C++20 Library for building interactive menus in OpenGL / Redacted3D.
It is expressly built with our Redacted3D engine in mind, but steps have been taken to support OpenGL generally.
Abstract
JUI provides a set of objects that we term Widgets, which can be styled and laid out on-screen in relation to each other. Each widget has a single parent, and a list of child elements. Your root widget should be a Scene object.
Features
- Flexible and comprehensive set of Widgets. Full List Here
- Extendable - Widgets can be extended via class derivation, and even combined to create complex behavior.
- Low-overhead stateful GUI elements.
- Easy integration with your project. Simply provide update, draw, and user-input callbacks to your scene.
Examples
Browse the src/Demos directories for examples of building and interacting with things in JUI.
Browse the Repository's , linked above, for further explainations and sample code on each widget.
Dependencies
ReJUI shares dependencies with it's rendering layer, .
Currently, the package is also integrated with
and
.
Fedora/RHEL: dnf install cmake make gcc-g++ libX11 libX11-devel mesa-libGL-devel vulkan-loader-devel
Ubuntu/Debian: apt-get install cmake make gcc g++ libx11-6 libx11-dev libgl-dev libvulkan-dev libxrandr-dev
Documentation
Documentation is automatically generated from latest commit and is hosted at https://doc.redacted.cc/jui .
An overview of the library is available here.
A full list of widgets is available here.
Contributing
Contributions to JUI are welcome! Feel free to file bug reports or feature requests by creating an Issue. Pull requests are also very welcome!
License
JUI is expressly released without a license, under no restrictions. We dedicate all of our works to the public domain for the (hopeful) betterment of humanity.
Acknowledgements
JUI is developed and maintained by Joshua O'Leary from Redacted Software Group, and all the wonderful contributors.