eGML Core Lib - The rendering heart of eGML
Licensable software graphics rendering library for embedded processors
Graphics rendering is required in many embedded devices and applications such as graphical user interfaces (GUIs) but also in embedded systems without any display. An example for the latter case is HD-Matrix-LED light processing for automotive front- and rear-lights.
In many embedded systems, e.g. for system cost or legacy reasons, the graphics rendering job has to be done without a dedicated GPU (Graphics Processing Unit), i.e. it has to be done in software on a CPU while still significant rendering performance has to be achieved. At the same time many graphics applications, such as the examples mentioned above, only require 2D BLIT (Block Level Image Transfer) graphic operations.
The egmlCoreLib covers especially such cases by providing a comprehensive set of 2D BLIT routines, each of these highly optimized in performance by utilizing SIMD instructions, e.g. NEON, SSE and AVX.
The ANSI-C egmlCoreLib - the heart of eGML - is designed to target entry class embedded processors with a simple RTOS or even on bare-metal (no OS) as it has no operation system dependencies and a tiny memory footprint. It is highly customizable so that it can easily be tuned for specific application requirements.
Graphics rendering functionality
- Fill, blit, blitcolor, stretchblit, stretchblitcolor
- Clipping (blit / fill, stretchblit)
- Stretchblit: nearest neighbour + bilinear interpolation modes
- Porter Duff source over blending
- Per pixel and global alpha
- Alpha channel colorization
- Alpha8, Luminance8, RGB565, ARGB32
- ANSI-C Library
- Utilizes SIMD instructions, e.g. NEON, SSE, AVX, ..
- Tiny memory footprint
- No OS dependencies and no dynamic memory allocations
- suitable for RTOS or bare-metal (on OS) systems
- easily portable
- Easily customizable and extendable with special purpose functions e.g. lighten / darken and additional color formats