Graphics support
   Cross Platform
   Release notes
   Get it
Keil LCD extension
Display library


v2.72 | v2.71 | v2.70
v2.41 | v2.40
v2.32 | v2.31 | v2.30
v2.23 | v2.22 | v2.21 | v2.20
v2.12 | v2.11 | v2.10


Order of bits for multi bit format is inverted, to fix the problem.

DPI setting is noted in the H file.

For large glyphs, 16 bits was not enough for offset table. This is fixed by the "font_offset_t" type, which is dynamically set as either fuint8 or fuint16 or fuint32.


Maximum number of glyph is increased to 64K from 4K.


Bit reverse for multi-bit format bug is fixed


Intel HEX16 and HEX32 file format supports are introduced.


HK - Hardware based licence is introduced

origin_x and origin_y tables are unsigned in the C file

a common H file (fontgen.h) is employed for common definitions

collusion check bug fixed

more conditional defines for customizing font definition struct

type definitions for more portability

structure fields are now using FontGen defined types for 8-16 bit variables (fuint8, fint8, fuint16). These types are defined in the fontgen.h, the common header. This enables easily port the FontGen produced source codes to different CPU architectures.


offset_x and offset_y table definitions are fixed to hold signed char values

non TrueType font bug fixed

Font definition was not be able to produced for non-TrueType fonts. This is fixed. Now you can produce font definition for non-TrueType fonts also, but some features like (horizontal compact, negative x offset, etc) are not supported for such fonts.


Font defitinition format is changed to support negative x offset and zero advance width.

Font definition format version is now 3. With this version, advance width and offset features are introduced.


Command line parameter handling bugs fixed.

Application was crashing at program startup when some command line parameters supplied.


Variable declaration/definition bugs fixed.

Extended mapping file is used when it is generated by default.

Before this version, it was not being used (#define'd) if it is not required (collision or overload)


Reverse and rotation interaction bug fix.

When reverse bits is used when the glyph is rotated the produced font definition was having unexpected pixels set. This is fixed.

Include file support

Capability to let the user to provide the include files to be included in the C and H files is introduced. With this feature, FontGen creates the C and H files with the user provided header files already included. This reduces the requirement for manual edit to the font/image definition files.

Cross platform support with the ability of learning how variables defined and declared.

To be able to support different microcontrollers and development environments, a new capability is introduced to teach FontGen how you declare and define variables. Read more here.

Command line parameters introduced

Many command line parameters introduced to let the user to run FontGen in batch files. Check the details here.

Duplicate chars removed

When the user provides the same char code twice for glyph generation, one is ignored since it is unnecessary to have the same glyph twice in the font definition file.


New option on user interface: "Care current codepage"

When this checkbox is checked, unicode character codes are converted to the codes which is used by the current code page whenever possible.

This conversion is quite helpful when your codepage is different than the standart ASCII code table, and using those characters in your strings in your IDE which is not in the ASCII code table.

Consider you're using MS Windows for Turkey, with the current codepage 'windows-1254: ANSI Turkish; Turkish (Windows)'; and want to use the Turkish characters on your LCD interface.

Consider the 'I' character with a dot above. Its unicode code is 0x0130. Its code in the windows1254 codepage is 0xDD. When I create a string with this character in it, the IDE will put 0xDD for the character. When you address the FontGen tables with 0xDD, you'll reach to a wrong or invalid glyph.

When the 'care codepage' option is checked, FontGen will use 0xDD instead of 0x0130 for all occurences of this character. This will fix the problem described above.

Read more here about character sets and codepages.

New option on user interface: "Extended mapping table"

User can prevent generation of extended mapping table by unchecking this checkbox. Glyphs are not sorted when extended mapping table is not generated.

Please note that extended mapping table is required for cases like collision or overload on the used glyph set. Refer to the extended mapping table explanation for the details.

If the extended mapping table generation is disabled while there is a collision or overload, this is noted in the generated font definition file with the "#error" pragma.

Table orders are changed in the generated C code for font definition files.

New menuitem in the context menu: "Append glyphs"

Opens a window to let you to insert the glyphs for the requested char code range. Right click on the memo to show the context menu.

New menuitem in the context menu: "Load glyphs"

Lets the user to load the glyphs from given unicode text file.


Underscore characters are added to the registration info lines.


"struct" keyword is removed from font and image definition declarations.

FontGen was using "struct" keyword at the font definition declarations like below:

   extern struct IMG_DEF ....;

The struct keyword was unnecessary and removed.


Grayscale capability introduced.

With this capability, you can generate font and image definition files with color depth upto 8 bits per pixel.

Custom color depths are introduced

With this feature, you can set the borders for the color decision of FontGen. You can use this feature for color depts 1, 2 and 3. Higher color depths for custom setting is not supported since the required sliders for those color depths are too much.

Keil compability option introduced

"code" keyword is used when required when this option is checked.

Menu items are added to the context menu for code tab close and move to previous/next tab.


Extended mapping table is introduced.

When using the plain mapping table, there is a risk of collision in the mapping table if you're generating font definition for the glpyhs from different code pages. Consider that you're using chars 0x0612 and 0x0712. Both of these glpyhs would map to slot 0x12.

If you're generating font definition for more than 256 glpyhs, the plain legacy mapping table cannot handle this. This is called overload.

If there is a collision or overload for the mapping table, you have to use the extended mapping table. FontGen detects the overload and collision conditions and forces the user to use the extended mapping table, and notes this in the header file for the font definition.

Extended mapping table holds all the glpyhs which the font is generated. This table is expected to be searched with binary search mechanisms to increase the speed.

Check the sample C and H files for an example of the extended mapping table.

Version of the font definition format is increased to 2.

number of glyphs and extended mapping table pointer is added to the FONT_DEF structure.


FontGen is modified to produce much better commented C/H files.

Check the sample C and H files for an example of the commented output.


UI modified to let the user to select the output folder.

Feature to open the generated C/H files in tabs is introduced.


Copyright 2006-2015 - dreamsware -