Key functions of TrueType rasterization
For every font, the first time it's used in a session:
Whenever a new size or orientation of a particular font is selected:
- Run the 'fpgm' program, initializing all the subroutines to be called later by the 'prep' program and the glyph programs.
For each glyph:
- Scale the 'cvt' reference values to the relevant pixel distance for this ppem;
- Run the 'prep' program to adjust these values, and set other information for all glyphs at this size.
- Decode the glyph from its compressed representation in the TrueType file;
- 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;
- Execute the glyph's hinting program, with the effect of distorting the glyph's control points;
- 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);
- 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.
- 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.)
- 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.
- 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.
TrueType Typography |