TrueType Typography
The TrueType Rasterizer
Warning! Technical stuff...

Key functions of TrueType rasterization

For every font, the first time it's used in a session:
  1. Run the 'fpgm' program, initializing all the subroutines to be called later by the 'prep' program and the glyph programs.
Whenever a new size or orientation of a particular font is selected:
  1. Scale the 'cvt' reference values to the relevant pixel distance for this ppem;
  2. Run the 'prep' program to adjust these values, and set other information for all glyphs at this size.
For each glyph:
  1. Decode the glyph from its compressed representation in the TrueType file;
  2. Scale the glyph according to the desired point-size and output device, so that its coordinates are measured in pixels, to an accuracy of one sixty-fourth of a pixel;
  3. Execute the glyph's hinting program, with the effect of distorting the glyph's control points;
  4. Scan-convert (fill) the "grid-fitted" hinted outline, making a bitmap image of the glyph (scan-conversion may involve drop-out control, a mechansism to preserve pixels in very thin parts of glyphs);
  5. Pass the bitmap to the system, which stores it in a cache for efficient re-use.


The implementations in this section were designed not for a particular application, but for a whole system to use (an operating system or a printer). TrueType rasterizers have however been built into specific applciations, such as the DOS versions of WordPerfect 6.0 and MS Word 6.0.
  1. Mainstream implementations
    • In March 1991, an extension to Macintosh System 6.0.5 became the very first publicly-available TrueType rasterizer. In May of the same year, the new System 7.0 integrated TrueType fully.
    • Windows 3.1, version 1.00 of the Microsoft TrueType rasterizer (also in Windows 3.11 and Windows NT 3.1). Because much of the code was 16-bit, it had problems where complex glyphs would not display at some sizes and revert to the "missing character".
    • Windows NT 3.5, version 1.50 of the Microsoft TrueType rasterizer.
    • Windows 95, version 1.65 of the Microsoft TrueType rasterizer, 32-bit throughout. This version corrects problems with complex glyphs previously inherent in Microsoft's rasterizer. The rasterizer is capable of grey-scale rendering on SVGA screens, which can make some fonts much more legible and aesthetic (this feature is unlocked using the Windows 95 Plus! pack).
    • The Hewlett-Packard LaserJet 4 printer, and subsequent printers, handle "PCLETTO" fonts (PCL Encapsulated TrueType Outline). TrueType fonts can be downloaded, or installed in printer EPROM, and interpreted directly.
    • The rasterizer for Type 42 fonts in some PostScript Level 2 printers. Type 42 fonts are TrueType fonts with a rather trivial PostScript "wrapper", as described in Adobe's Type 42 specification, in PDF format.
    • Apple have developed a downloadable TrueType rasterizer to work on printers having a 680x0 processor, but it is not publicly available. (Mentioned in the Type 42 spec.)

  2. Rasterizers for Original Equipment Manufacturers
    • Font Fusion incorporates Sampo Kaasila's super-fast T2K with Bitstream's rasterizer for Type 1, Speedo, Intellifont, and TrueDoc PFR WebFonts. See also the Bitstream Font Fusion page.
    • Agfa UFST (Universal Font Scaling Technology) from Agfa handles PostScript Type 1, TrueType and Agfa IntelliFont. Installations include a custom version for the Wordworth word processor on the Amiga.

  3. Shareware/Freeware TrueType rasterizers
    • FreeType is a free TrueType rasterizer, by David Turner, Robert Wilhelm and Werner Lemberg. Written in C, it does interpret instructions. There's a Java port of FreeType by Roland Paterson-Jones.
    • Pascal source code does not interpret TrueType instructions.
    • A Chinese rasterizer: it does not interpret TrueType instructions.

Other references

TYPE*chimérique | TrueType Typography | TYPE*links