The Font Engine is composed of:

  • A “Font Designer” module: a graphical tool which runs within the MicroEJ IDE used to build and edit MicroUI fonts; it stores fonts in a VEE Port-independent format. See Font Designer.
  • A “Font Generator” module, for converting fonts from the VEE Port-independent format into a VEE Port-dependent format.
  • The “Font Renderer” module which decodes and renders at application runtime the VEE Port-dependent fonts files generated by the “Font Generator”.

The three modules are complementary: a MicroUI font must be created and edited with the Font Designer before being integrated as a resource by the Font Generator. Finally the Font Renderer uses the generated fonts at runtime.

Functional Description

Font Generation

Font Generation

Process overview:

  1. User uses the Font Designer module to create a new font, and imports characters from system fonts (*.ttf files) and / or user images (*.png, *.jpg, *.bmp, etc.).
  2. Font Designer module saves the font as a MicroEJ Font (*.ejf file).
  3. The user defines, in a text file, the fonts to load.
  4. The Font Generator outputs a raw file for each font to convert (the raw format is display device-dependent).
  5. The raw files are embedded as (hidden) resources within the MicroEJ Application. The raw files’ data are linked into the FLASH memory.
  6. When the application creates a MicroUI Font object which targets a pre-generated image, the Font Engine Core only has to link from the MicroUI Font object to the data in the FLASH memory. Therefore, the loading is very fast; only the font data from the FLASH memory is used: no copy of the font data is sent to RAM memory first.