Iridescence 1.00
Embedded Graphic Framework
|
Iridescence is a complete embedded graphics framework written in C++. It goes beyond just providing a graphics library for drawing on the screen. It provides a view manager, a trove of common views like text labels, edit fields, buttons, image views, switches, sliders, selectors, lists, context menus, dialog views, an on-screen keyboard and so on... Graphical user interfaces using the Iridescence framework are defined entirely programatically. There is no graphic design software. We believe that defining user interfaces programatically offers an increased level of control, as well as reduced number of moving parts and simplicity to learn. The framework is composed of a few independent modules: the renderer, the view manager and a library of common views. New views can be created by deriving a class from an existing view and adding the extra functionality. We include a lot of features to make your life easier: support for C++ closures, LiveData (an easy, bug-free way of passing data to the graphics thread), a complete build system so you can get right to developing your application, without having to write thousands of lines of boiler plate code.
For development, we advice using the latest Ubuntu LTS release (24.04 LTS). Older LTS releases of Ubuntu are supported as well: 20.04 LTS and 22.04 LTS.
The Iridescence tools are a set of command line and graphical apps for generating bitmap fonts and surfaces. They are required in order to compile and run applications using the Iridescence framework.
The tools are available for Ubuntu releases 20.04 LTS, 22.04 LTS and 24.04 LTS on our APT repository.
Follow these instructions to add the repository to your Ubuntu system.
Download the APT repository installation script from http://apt.thornwave.com/install.sh to the current directory:
Run the script as root:
sudo bash install.sh
This will add the Thornwave Labs APT Repository key to your system and the repository to /etc/apt/sources.list.d/
Update the APT database and install Iridescence Tools
sudo apt update
sudo apt install iridescence-tools
The following tools are included:
The code is hosted in a GIT repository. To retrieve it, run:
git clone ssh://git@git.thornwave.com:29418/thornwave/iridescence_examples.git
Install some required libraries (Ubuntu 24.04 LTS):
sudo apt install build-essential libsdl2-dev
Build the fonts. You can specify -jN to make, indicating how many thread to use for building. We recommend twice the number of CPUs in your system. This will extract the specified characters and sizes from all the TTF fonts located in the fonts/source directory and compile them in a static library. To change the sizes and characters extracted, edit the Makefile. (CHARS and SIZES variabled) Once make finishes you will have two files: fonts.h and fonts.a. Include the header with your project and link the .a file with your project. Only the fonts that are used in the project will pulled from the fonts.a static library.
cd iridescence_examples/fonts
make -j16
Compile the examples.
cd iridescence_examples/examples
make -j16
Once compiled, the executable files will be in build/bin/ of each example directory.
The PC port (Windows / Linux) is provided for free without watermarking. This allows you to run the existing demos and examples and also create your own applications.
The STM32 port is provided with watermark and cannot be used in a production environment. We provide lifetime licensing that applies to a single product only. There are no royalties or limitations on the volume of the product sold. Upon licensing we will compile the library for the platform of your choosing, using GCC, and the compilation flags you require. The library will be delivered via email as a set of C++ header files and a static libray (.a) ready to integrate in your project. We'll also deliver the FreeRTOS / STM32 integration layers.
For pricing contact us at: sales@thornwave.com
If you need help developing your product (hardware and firmware) we can help with that. We have 25+ years of experience designing electronics, writing C / C++ code and developing firmware for embedded systems. Since we developed the Iridescence graphics framework, we know it very well. We will deliver profesionally written code at a production level quality in record time. For larger projects we also offer a free license for the library.
Check out our graphic development platforms: https://www.thornwave.com/shop/development
For more information, contact us at: support@thornwave.com