Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hikogui/hikogui
Modern accelerated GUI
https://github.com/hikogui/hikogui
Last synced: 3 months ago
JSON representation
Modern accelerated GUI
- Host: GitHub
- URL: https://github.com/hikogui/hikogui
- Owner: hikogui
- License: bsl-1.0
- Created: 2019-01-28T11:15:25.000Z (almost 6 years ago)
- Default Branch: main
- Last Pushed: 2024-05-01T18:58:55.000Z (9 months ago)
- Last Synced: 2024-05-02T00:08:13.707Z (9 months ago)
- Language: C++
- Homepage:
- Size: 32.2 MB
- Stars: 742
- Watchers: 14
- Forks: 41
- Open Issues: 49
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE_1_0.txt
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesomecpp - hikogui - - modern accelerated GUI. (UI)
README
HikoGUI GUI library [![Build on Windows](https://github.com/hikogui/hikogui/actions/workflows/build-on-windows.yml/badge.svg?branch=main)](https://github.com/hikogui/hikogui/actions/workflows/build-on-windows.yml) [![Version](https://img.shields.io/badge/dynamic/json?url=https://raw.githubusercontent.com/hikogui/hikogui/main/vcpkg.json&label=Latest%20Version&query=$[%27version%27]&color=blue)](https://github.com/hikogui/hikogui/releases/latest) [![License](https://img.shields.io/github/license/hikogui/hikogui.svg)](https://github.com/hikogui/hikogui/blob/main/LICENSE_1_0.txt)
==================A portable, low latency, retained-mode GUI framework written in C++
-------------------------------------------------------------------I started this library to make a portable, low latency and modern looking
UI framework, which may also be used in proprietary (closed source) applications.It is specifically designed to display information with low-latency,
and at the screen's refresh rate. Special care is taken for making
it easy for GUI element to observe and modify data external to the GUI.You can find a lot more information,
[documentation](https://hikogui.org/docs/hikogui/main/index.html),
[example code](https://github.com/hikogui/hikogui-hello-world/blob/main/src/main.cpp),
news and blog posts on the main web site:Features
--------- High level API to make simple desktop applications.
- Modern C++20 library.
- Retained-mode GUI.
- GUI will dynamically track the state of the application.
- Localization and translation.
- Animation at the screen's refresh rate.
- Themes; including light/dark support.
- Editable key-bindings.![Themes with dark and light mode](docs/media/screenshots/demo_dark_and_light.png)
- Most or all drawing is GPU accelerated with Vulkan.
- Text is drawn using kerning, perceptional correct blending and subpixel anti-aliasing.
- High dynamic range and high gamut color handling.![Subpixel anti-aliasing](docs/media/screenshots/subpixel_glyphs.png)
- Automatic application preferences storage.
- Many support systems:
+ logging,
+ statistics,
+ text handling,
+ text template language,
+ expression language,
+ dynamic type system.Example
-------
Here is some example code for an application with three radio buttons,
who form a set by sharing a single `value` observer.```
int hi_main(int argc, char *argv[])
{
observer value = 0;auto gui = hi::gui_system::make_unique();
auto &window = gui.make_window(txt("Radio button example"));
window.content().emplace("A1", txt("radio buttons:"));
window.content().emplace("B1", txt("one"), value, 1);
window.content().emplace("B2", txt("two"), value, 2);
window.content().emplace("B3", txt("three"), value, 3);return gui->loop();
}
```Platform support
----------------The following platforms are supported:
- MSVC - Windows 10 (or newer) - x64
For hardware support see: [hardware\_support](docs/hardware_support.md)
Installation, Building and Contributing
---------------------------------------You can find the install and build instruction for your favorite IDE
in the [INSTALL.md](INSTALL.md) document.You can find instruction on how to contribute to the HikoGUI library in the
[CONTRIBUTING.md](CONTRIBUTING.md) document.If you want to use HikoGUI as a library for your own application you can
find instructions in the [hikogui_hello_world](https://github.com/hikogui/hikogui_hello_world)
example application's [README](https://github.com/hikogui/hikogui_hello_world/blob/main/README.md).Sponsors
--------If you like to become a sponsor, please contribute to
[Take Vos](https://github.com/sponsors/takev) the main developer of the HikoGUI.The following people and companies are platinum sponsors:
_There are currently no platinum sponsors._
For more sponsors please see [SPONSORS](SPONSORS.md).