PicoTK is a low-resource C GUI toolkit designed for efficient memory usage.
Key features of PicoTK include the ability to draw primitives like points, lines, texts (with different fonts, both fixed and proportionally spaced using X-Windows fonts), filled rectangles, and pixmaps. Its driver is easily adaptable to "homebrew" embedded display hardware based on memory-mapped framebuffer, and it supports generic drivers for 1, 4, and 8 bit per pixel color depth as well as VGA mode 0x11 (640x480x2), VGA mode 0x13 (320x200x8), and VESA linear frame buffer modes (480x640x8 to 1280x1024x8) on graphic cards that support VBE2.0 or higher.
PicoTK also includes a framebuffer emulator (fbe) for Linux that can be used for the development of the toolkit and for developing applications. This allows you to have a simulation version of your application that runs under Linux and see its emulated screen. You can then cross-compile the same application for the target system. Fontripper and ppmripper are tools for converting X11 fonts into PicoTK fonts and ppm portable pixmaps into PicoTK pixmaps. Fonts and pixmaps are encoded into linkable binaries, meaning that the system can be compiled into a single binary and does not require a filesystem.
When used with RTEMS, PicoTK can enable graphical output for embedded systems using GNU technology. It allows for easy adaption/porting to your favorite operating system or hardware architecture. Additionally, Linux can be used as a development host for cross-compiling and as an emulation environment.
The latest release of PicoTK includes extensions to the demo application, an updated HOWTO (currently only the ASCII version is included in the sources), support for VESA VBE2.0 flat linear frame buffer, and picoTermPrintf() with added support for VT100/320 Escapes: Change color and move cursor. The graphics configuration can also be changed by changing toolkit/Makefile. In summary, PicoTK is a lightweight, flexible, and easily adaptable GUI toolkit that is ideal for embedded systems, particularly those with limited memory resources.
Version 0.03: N/A