SGFX is a lightweight embedded library for displays and touchscreens providing everything required to build a fully featured embedded GUI. The SGFX library has been designed to be the smallest, fastest and most advanced embedded library for display and touchscreen solutions. For more information, access the official website.
- Small memory Footprint;
- Maximize utilities of hardware acceleration;
- Support of advanced graphics operations such as multiple alpha blending modes;
- No kernel modifications;
- Lightweight, OpenSource, Portable and Modular;
- Lua support (experimental)
- GCC
- Clang
- x86
- x86_64
- ARMv5
- ARMv6
- ARMv7
- ARMv8 (32-bit/64-bit)
- Raspberry Pi 1 Model B
- Raspberry Pi 2 Model B
- Raspberry Pi 3
- Raspberry Pi 4
- Odroid C2
- Beagle Bone Black
- DragonBoard 410C
If you have a suggestion or want contribuite with a new portings, create an issue 😉
SGFX requires CMake and Ninja to compile. Follow the instructions:
$ cd sgfx
$ mkdir build
$ cmake CMakeLists.txt -Bbuild -GNinja
$ cmake --build build
In case of cross compilation:
$ cd sgfx
$ mkdir build
$ cmake CMakeLists.txt -Bbuild -GNinja -DCMAKE_TOOLCHAIN_FILE=toolchains/<toolchain_file>.cmake
$ cmake --build build
First, you must configure framebuffer filedescriptor used by target archtecture. Default value used is /dev/fb0
, however you can change it creating a .sgfxconfig
:
FDFB=/dev/fb
After that run examples (remember to run as a superuser):
cd build
./examples/<example>
Examples | Definition |
---|---|
helloworld | Hello World Example |
drawprimitives | Primitives (rect, line...) |
drawimages | PNG, BMP and TIF |
drawtext | Draw simple text |
eventexample | Touch event example |
SGFX may be modified and distributed under the terms of the MIT license. See the LICENSE file for details.