The Art of Interface

Case 3

EGE — embedded graphic engine

Category. Embedded graphic firmware development.

Description. 2D graphic engine for embedded applications.

Reference. EGE in production — Automotive digital LCD dashboards.

Embedded graphic engine

1. Introduction to EGE

Graphic engine is 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 virtual 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 graphic boards of medium complexity without using of hardware acceleration. In the picture below — fig. 1 — you can see an automotive virtual dashboard prototype with the following characteristics:

Virtual dashboard prototype characteristics
ProcessorIntel XScale at 400 MHz
Hardware accelerationNone
RAM usage8 Mb
Space on disc300 Kb (engine + graphics)
Refresh rate50 Hz
Graphics formatRGB 16 bit
Number of indicators12

Automotive virtual LCD dashboard prototype

Fig. 1. EGE engine rendering automotive virtual dashboard.

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 common file. As option only pixels with nonzero A-channel can be stored so that the final size of the graphics storage is quite small. Thus there a storage processor is present in 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.

EGE engine structure diagram Fig. 2. EGE engine structure.


Write to the author of the case — Sergey Chernenko.