One of the big problems OpenGL runs into after you've got your first few polygons flying around the screen is the lack of a standard method for generating text within the API.A few techniques have evolved to tackle the problem:

Polygon glyphs created from outline font definitionsThis method produces high quality, scalable text, but this approach is the slowest due to the overhead of generating and rendering the glyph polygons.

WGL and GLUT extensionsThese extensions do a great job of text rendering. However, these libraries are not available on all platforms and we want our code to be portable and platform independant.

Bitmapped fontsBitmap fonts are fast, flexible and platform independant. However, quality suffers when scaling up and the number of possible characters in a font texture is limited. Extended or Unicode character sets with accents or non-latin symbols are not well supported.

A bitmapped font is simply an atlas texture containing a collection of glyphs and symbols.

The characters can then be mapped individually onto polygons to create dynamic strings of text.

Adding width information to the glyphs allows the textured quads to be overlapped to create better looking text with variable character widths.

There are many bitmap font generators around, but I wanted a few features that the others didn't provide. So I wrote my own.

Codehead's Bitmap Font Generator (CBFG) is now at version 1.43 and supports the following features: