eGML - embedded Graphics Multiplatform Library

Licensable software graphics rendering library for embedded processors

eGML (embedded Graphics Multiplatform Library) is a C++ software 2D Graphics IP Core targeting high quality real-time graphics applications on embedded devices with single 32bit CPU cores like ARM, MIPS, xscale, x86, PowerPC and SH-4.

The eGML 2D Graphics rendering engine is designed for high portability, performance and state-of-the-art 2D graphics quality. It offers a rich set of functions to create any kind of graphical output. Beside its compelling 2D graphics functionality eGML also offers 3D graphics functions typically needed e.g. for sophisticated user interfaces.

The eGML 2D Graphic IP Core is delivered with a complete framework including support for image formats, text- and font-support, OS abstraction and HW abstraction simplifying porting to different platforms and application development. As a result, graphic applications targeting multiple platforms can use eGML to become almost entirely OS and hardware independent.

Applications that need fast and visually appealing graphics – like navigation systems, infotainment systems, high-end white goods or professional industrial devices – benefit from the optimized algorithms implemented in the eGML 2D Graphics IP Core. Devices with rather small display resolution (compared to desktop PCs) benefit from features like sub-pixel accurate rendering, edge-based weighted anti-aliasing and bilinear filtering providing much smoother and clearer graphics.

eGML Architecture


Features

  • All eGML drawing operations are performed with sub pixel accuracy and edge-based - optionally weighted - anti aliasing increasing the perceived resolution.
  • eGML can provide anti-aliased graphics at very high (real-time) frame rates: 200k high quality lines (2-4pix wide, 12-90pix long) per second have been measured without any hardware acceleration on a 133MHz CPU.
  • The eGML 2D Graphics IP core can render geometric primitives like dots, lines, triangles, polygons and polylines with round, miter or bevel joins. Drawing high quality lines with special features like round endpoints or variable widths is highly useful in user interface or map rendering applications.
  • eGML supports simple BLIT, stretch BLIT, rotate BLIT, format conversion, clipping, bilinear filtering, per pixel alpha blending and coloring.
  • Besides advanced 2D Graphics rendering functionality the eGML Graphics IP Core also supports 3D Graphics functionality like 3D transformation, clipping and perspective texture rendering.
  • The optionally linkable eGML add-on modules eFont and eImage provide various features like kerning support, font conversion from TTF to bitmap, curved text, PNG and JPEG support.
  • Java graphics applications are support via an optional Java Native Interface (JNI) module.
  • The eGML 2D Graphic IP Core is extremely portable and already supported on various 32-bit CPUs and Operation Systems (see below). It integrates seamlessly with native graphic libraries like GDI and SDL.

Example Screenshots


CPUs

Operation Systems:

Minimum System Requirements

  • 32Bit CPU
  • Embedded C++ (ISO 14882)
  • Memory Footprint
      • RAM 16KB
      • ROM150-600 KB

    Watch demo video

    Related Links