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, example code, news and blog posts on the main web site: https://www.ttauri-project.org/
- 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.
- 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.
- Automatic application preferences storage.
- Many support systems:
- logging,
- statistics,
- text handling,
- text template language,
- expression language,
- dynamic type system.
Here is some example code for an application with three radio buttons,
who form a set by sharing a single value
observable.
int tt_main(int argc, char *argv[])
{
observable<int> value = 0;
auto &window = gui_system::global().make_window(l10n("Radio button example"));
window.content().make_widget<label_widget>("A1", l10n("radio buttons:"));
window.content().make_widget<radio_button_widget>("B1", l10n("one"), value, 1);
window.content().make_widget<radio_button_widget>("B2", l10n("two"), value, 2);
window.content().make_widget<radio_button_widget>("B3", l10n("three"), value, 3);
return gui_system::global().loop();
}
The following platforms are supported:
- MSVC - Windows 10 - x64
For hardware support see: hardware_support
If you like to help with the development or want to modify ttauri you can find instruction how to install the dependencies and how to build ttauri in the CONTRIBUTING document.
If you want to use ttauri as a library for your own application you can find instructions in the ttauri_hello_world example application's README.
The following people and companies are platinum sponsors:
There are currently no platinum sponsors.
for more sponsors please see SPONSORS.