Update README.md

This commit is contained in:
2025-02-04 17:07:45 -05:00
parent 5bf6e2cabc
commit 2e65380ae6

View File

@@ -2,33 +2,57 @@
![Static Badge](https://img.shields.io/badge/Lit-Based-%20)
Fourth Time's The Charm! (tm)
Fourth Time's The Charm!
JUI is a C++20 Library for building interactive menus in OpenGL / Redacted3D.
#### 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.
![JUI First Showcase](showcase.png)
## Abstract
JUI provides a set of objects that we term Widgets. Widgets 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.
Provided widgets include Scene, Rect, Text, TextRect, Button, TextButton, TextInputForms, Slider, Image, ImageRect, RadioButton
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
### Why use this instead of imgui?
## Usage
* Comprehensive list of common UI widgets:
* ![Scene](https://git.redacted.cc/josh/ReJUI/wiki/Scene)
* ![Rect](https://git.redacted.cc/josh/ReJUI/wiki/Rect)
* ![Text](https://git.redacted.cc/josh/ReJUI/wiki/Text)
* ![TextRect](https://git.redacted.cc/josh/ReJUI/wiki/TextRect)
* ![Button](https://git.redacted.cc/josh/ReJUI/wiki/Button)
* ![TextButton](https://git.redacted.cc/josh/ReJUI/wiki/TextButton)
* ![TextInputForm](https://git.redacted.cc/josh/ReJUI/wiki/TextInputForm)
* ![Slider](https://git.redacted.cc/josh/ReJUI/wiki/Slider)
* ![Image](https://git.redacted.cc/josh/ReJUI/wiki/Image)
* ![ImageRect](https://git.redacted.cc/josh/ReJUI/wiki/ImageRect)
* ![RadioButton](https://git.redacted.cc/josh/ReJUI/wiki/RadioButton)
* ![Window](https://git.redacted.cc/josh/ReJUI/wiki/Window)
* ![Checkbox](https://git.redacted.cc/josh/ReJUI/wiki/Checkbox)
* ![NineSliceRect](https://git.redacted.cc/josh/ReJUI/wiki/NineSliceRect)
* Vertical and Horizontal ListLayout, GridLayout
* Separator
* ScrollRect
* 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
![JUI First Showcase](showcase.png)
Browse the src/Demos directories for examples of building and interacting with things in JUI.
Browse the Repository's ![Wiki](https://git.redacted.cc/josh/ReJUI/wiki), linked above, for further explainations and sample code on each widget.
## Dependencies
ReJUI shares dependencies with it's rendering layer, ![JGL](https://git.redacted.cc/josh/JGL).
Currently, the package is also integrated with ![J3ML](https://git.redacted.cc/josh/J3ML) and ![ReWindow](https://git.redacted.cc/Redacted/ReWindow).
`
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 .
@@ -37,17 +61,6 @@ Documentation is automatically generated from latest commit and is hosted at htt
Contributions to JUI are welcome! Feel free to file bug reports or feature requests by creating an Issue. Pull requests are also very welcome!
## History
JUI started out as my menu toolkit for the LOVE2D framework many years ago. Between then and now I had re-implemented it twice, once for MonoGame Framework, and again in C++ for SDL2. Legacy versions are listed below.
JUI v1 - LOVE2D / Lua
JUI v2 - MonoGame / C#
JUI v3 - SDL2 / C++
## 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.