The Art of Interface

Article 14

EGE — embedded graphics engine

Description. 2D graphic engine for embedded applications.

Reference. EGE in production — Automotive digital LCD dashboards.

Embedded graphics engine

1. Introduction to EGE

EGE stands for embedded graphics engine. The graphics engine is an effective solution for automotive and industrial embedded devices where graphics performance and quality at low cost is essential requirement. The core of the engine is smart mathematics that allows to build smooth and semitransparent graphics of RGBA format with minimal processor time consumption. The engine itself is represented by a set of modules, everyone of which shaped for effective performance in predefined graphic operations. EGE is written in C++ and implemented as standalone cross-platform library that does not need any additional modules or even OS.

2. Usage example — automotive digital LCD dashboard

The core idea behind EGE is thorough speed optimization for fast graphics rendering and high performance. As result of optimization the refresh rate of 50 Hz is easily achievable for graphics boards of medium complexity without using of hardware acceleration. In the picture below — fig. 1 — you can see an automotive digital dashboard prototype with the following characteristics:

Digital dashboard prototype data
ProcessorIntel XScale at 400 MHz
Hardware accelerationNone
RAM usage8 Mb
Space on disc300 Kb (engine + graphics)
Refresh rate50 Hz
Graphics formatRGB 16 bit
BufferingDouble
Number of indicators12
Fig. 1. Automotive digital LCD dashboard prototype. Fig. 1. EGE engine rendering automotive digital dashboard graphics.

3. EGE engine structure

EGE engine consists of the following modules — fig. 2:

  1. Core;
  2. Indicators;
  3. Script processor;
  4. EGF storage processor.

Core is responsible for fast graphics rendering that includes building pixel regions and lines, blending colors, rotating bitmaps and antialiasing. Indicators contain displaying and speed-up logic for gauges of predefined type. All RGBA bitmaps for a board can be stored in a common file. As option only pixels with nonzero alpha-channel can be stored so that the final size of the graphics storage is quite small. Thus, there a storage processor is present in the library that is responsible for loading bitmaps from the storage. To position and define indicators properties there will be included a configuration script processor. The script itself is intended to be represented by INI-like text file. Library functionality is intended to be exposed to the user through OpenGL-like C interface.

Fig. 2. EGE graphics engine structure. Fig. 2. EGE graphics engine structure.

5. To learn more

Details on our service for automotive industry:

Digital dashboard programming

Digital dashboard programming:

  • 2D and 3D graphics
  • GUI
  • peripheral drivers
  • communication protocols
  • RTOS