# Font Fusion

Bitstream Font Fusion is a small, fast, object-oriented font engine written in ANSI C capable of rendering high-quality text on any platform, any device, and at any resolution. The entire source code is portable, optimized, and executes independent of operating system and processor. The font engine is capable of rendering 2,400-3,300 characters per second on a 100 MIPS CPU.
Font Fusion is designed such that it can meet the memory and performance requirements, even if the Asian languages that contain thousands of characters are to be supported. Font Fusion is also the core technology behind other Bitstream products, Panorama, ThunderHawk and myMMS.

## Version history

In late 1980s, Sampo Kaasila, lead developer of TrueType and founder of Type Solutions (now a wholly owned subsidiary of Bitstream Inc.) designed T2K, a font renderer, which provided an object-oriented design, advanced architecture and algorithms, and was capable, to embed in all sorts of devices. Later in 1998, Bitstream acquired Type solutions and T2K evolved into Bitstream's font rasterizer, called Font Fusion.
| Major version | Minor version | Release date | Significant changes |
| Version 1 | 1.0 | October 28, 1999 | Initial release. |
| Version 2 | 2.0 | July 18, 2000 | Japanese/Korean Fonts support. Improved display of text for Internet appliances and wireless devices |
| Version 2 | 2.1 | June 12, 2001 | Includes an optional 1.23 MB unified stroke-based font with 30,000 CJK characters |
| Version 2 | 2.2 | January 29, 2002 | Includes the Wireless Font Set (four proportional, four monospaced, and one symbol font), designed specifically for handheld and wireless devices |
| Version 2 | 2.3 | April 2, 2002 | OpenType Support. Support for FFC standards for closed captioning. Character edge effects. Pen Styles, Character Offsetting, and Pen Sizes. New CCTV font set. |
| Version 2 | 2.4 | April 8, 2003 | Enhanced support for OpenType and Type 1 fonts allowing access to all characters. Plug-in filter for embedding of bitmaps. |
| Version 2 | 2.5 | June 22, 2004 | Integration support for Panorama (enhanced support for text composition with simultaneous release of Bitstream Panorama). Support to modify the color tables. Improved stroke-based font output. |
| Version 3 | 3.0 | June 6, 2005 | New support for Font compression at all font formats |
| Version 3 | 3.1 | November 3, 2005 | Caching for memory-constrained consumer devices and mobile phones |
| Version 3 | 3.2 | April 25, 2006 | Optimized performance for mobile handsets and consumer electronics devices. Improved algorithms for compressed fonts. Optimized heap usage with fewer memory blocks. Reduced cache fragmentation |
| Version 3 | 3.3 | November 6, 2006 | Improved font rendering speed for compressed fonts. |
| Version 4 | 4.0 | September 24, 2007 | Extension for BREW and new methods to create outline of the characters |
| Version 4 | 4.5 | April 10, 2008 | Includes Smart Scale technology that dynamically scales the extended characters to fit within the device's preset bounding box. 32-bit Unicode support for CJK font files with extended CMAPs for 32-bit Unicode values. Support for windows bitmap font format FNT/FON and CID-keyed fonts |
| Version 5 | 5.0 | July 15, 2009 | Includes support for fractional sizes, an optimized PFR format, optional OTF support, vertical processing, format 16 font headers, and enhanced printer support. |
| Version 6 | 6.0 | May 10, 2011 | Includes support for Web Open Font Format (WOFF), OpenType fonts, Multiple Master Postscript Fonts, Type1 fonts and provides an optional Android wrapper add-on. Also includes an enhanced Font Manager and 32-bit filter tags for increased font customization and optimization. |

## Features

* Enhanced Font Support - Font Fusion provides support for Web Open Font Format (WOFF), OpenType fonts, Multiple Master Postscript Fonts, and Type1 fonts.
* New Font Manager - The new Font Manager module has been written from the scratch. As compared to previous version, it is faster, consumes less memory, and has a rich set of user APIs. It also includes an optional Android wrapper Add-on which enables an Android application to use Font Fusion rendering engine.
* Optimized hmtx Structure - Includes an optimized Horizontal Metrics hmtx table loading process.
* Added support for 32-bit Filter Tag - Font Fusion includes support for 32 bit Filter Tag, now more number of filters can be added by a user of Font Fusion.
* Lossless Font Compression — The font engine can read and render industry-standard fonts, bitmap fonts, and outline fonts in a compressed format. The engine has a unique capability of font compression such that each font consumes less memory, and achieving a 2-to-1 compression factor. For example, a unified stroke-based CJK font, with 37,000 characters is under 1MB with optimum compression.
* CJK Bitmap Font Compression — Font Fusion implements a compression algorithm for CJK bitmap fonts, which ideally compresses the embedded bitmaps and provides a compressed CJK bitmap font support. This font format is Bitstream proprietary compression format for CJK bitmap fonts.
* Fractional Size and Positioning — Supports fractional sizing and positioning of characters, such that text strings can be fit into any region.
* Smart Scaling — Smart scaling regulates the adjustment of characters that extend beyond the set height parameters and may get clipped when rendered on small screen devices. The technology ensures that the scaled characters are in proportion to the other characters in the font.
* Cache Management — Includes a dedicated cache manager to manage the system performance. Uses the cache to store rendered characters (bitmaps).
* Small footprint — The Font Fusion code size for devices varies from 65 – 187 KB, depending on the configuration chosen.
* Extraordinary Typographical Quality — Native TrueType hinting produces high-quality output on any device. Additionally, the anti-aliasing techniques, TV/LCD modes improve the glyph output irrespective of the device (a mobile handset or a large digital TV).
* Low Memory Requirement — Only 16 – 40 KB of RAM required for a Latin font and 27 – 34 KB of RAM required for a stroke based Asian font.
* Scalable Text — Supports high quality scalable text that can be used by mobile and smart phones. The device manufacturers and mobile developers can replace the bitmaps at a single point size with scalable font that can be rendered at different font sizes.
* Stroke-based Fonts Fupport — Uses a proprietary stroke-based font technology that uses a library of common components, called "radicals", that appear in characters repeatedly. The radicals and strokes are then pieced together and rendered on the fly to create characters.

### Language Coverage/Font Support

* Compact Asian fonts
* Industry Standard Asian Fonts
* Cyrillic
* Greek
* Arabic (complex scripting language)
* Hebrew (complex scripting language)
* Indian (complex scripting languages)
* Thai (complex scripting language)
* Over 50 other worldwide languages

### Font Formats Supported

* Multiple master fonts
* WOFF fonts
* Type 1
* TrueType
* TrueType collections
* OpenType
* Compact font format (CFF)/Type 2
* TrueDoc Portable Font Resources (PFRs)
* Bitstream Speedo
* T2K
* Font Fusion Stroke (FFS)
* Embedded bitmaps (TrueType, TrueDoc, and T2K)
* Bitmap Distribution Format (BDF)
* Mac font suitcase (Dfont)
* Windows bitmap font format FNT/FON
* PCLeo (PCL Encapsulated Outline), an Intellifont font format
* PCLetto (PCL Encapsulated Truetype Outline), soft fonts for printing applications

### Applications/Operating Systems Supported

* Cross-platform applications
* Web (HTML) applications
* Macintosh & Windows
* BREW
* Linux & UNIX
* Embedded operating systems
* Real time operating systems

### Devices Supported

Consumer Electronic Devices, Mobile Handset, Set-top box, Digital TV, Printer, Printer Controller, Fax Machine, Multi-function Device, Medical Imaging Device, GPS System, Automobile Display, and other Embedded System

### Software Applications Supported

Web application, Graphics application, Gaming application

## Font Fusion Plug-In for Symbian

Font Fusion plug-in is available for the Symbian OS as a dynamic-link library (DLL). The plug-in inherits all the features supported by the core Font Fusion engine.

## Font Fusion Plug-In for BREW

Font Fusion plug-in for BREW platform provides a standard font-rendering framework that implements different BREW interfaces, supporting scalable and multilingual text.

## Font Fusion Plug-In for Qtopia

Font Fusion framework is available for Qtopia allowing any third party font rendering engine to work as plug-in with the Qt/Qtopia application platform. The framework also adds the capability to have any font format compatibility with Qt/Qtopia.