      ============================================
      =       InnoTek Font Engine for OS/2       =
      =            powered by Freetype 2         =
      ============================================

Release 2.40 Build 40 - 2004-04-01


1. Introduction
~~~~~~~~~~~~~~~

The InnoTek Font Engine for OS/2 (powered by Freetype 2) is
a port of the Freetype 2 font engine to the OS/2 Warp platform
providing a tight integration with the OS/2 graphics
subsystem. It is designed to be able to replace the OS/2 font
rendering subsystem for selected (certified) applications.

The benefits of the Freetype library compared to the default
OS/2 font engine can be summarized as follows:

- greatly improved font rendering quality for both TrueType
  and Adobe Type 1 outline fonts

- 8-bit (256 color) anti-aliasing for smoother font display

- optional subpixel rendering for LCD screens

- better support for displaying Unicode font data

- more accurate character spacing

- flexible configuration options such as configurable
  anti-aliasing, hinting and font mapping

- enhanced APIs going beyond the capabilities of the OS/2
  graphics subsystem (such as glyph outline query support)

The font rendering quality improvements achieved by using
InnoTek's font engine with Mozilla are so remarkable that
every user will immediately enjoy the benefits of using
the product.

Due to the more sophisticated font engine and the high quality
8-bit anti-aliasing combined with InnoTek's full alpha-blending
blitting engine, the font rendering performance of InnoTek's
font engine will not match the performance of OS/2's built in
monochrome engine. However, InnoTek has performed a great deal
of performance optimizations and in real life scenarios, the
performance difference should be very minor.


2. Requirements
~~~~~~~~~~~~~~~

This library should only require OS/2 Warp 4 and any version
of Mozilla or IBM Web Browser for OS/2. Due to the Technology
Preview status, InnoTek was unable to perform a wide range of
compatibility tests. For best results, Convenience Pack 2 and
IBM Web Browser 2.0 are recommended.

Due to the high color depth blits done by InnoTek's Font
Engine for OS/2 (as opposed to monochrome blits done by GPI),
you should have a current graphics card with an accelerated
graphics driver. For best results, a 1+GHz machine is
recommended.


3. Installation
~~~~~~~~~~~~~~~

IMPORTANT: if you have already installed a 1.x version of
the font engine, please refer to the Additional Information
section on how to uninstall it!

The installation program will perform all steps required
to install and activate the InnoTek Font Engine for OS/2.
If you launch the installer with out an option, a graphical
interactive installation will be performed.

If the installer detects an installed copy of the product,
it will allow you to perform an uninstall.

After both installing and uninstalling the product, a
system restart is required for changes to take effect.

The installer provides full support for performing
unattended (CID) installation. Invoke the installer with
the /? switch for a list of options and their descriptions.


4. Support
~~~~~~~~~~

End user support is provided on a best-effort basis through
the InnoTek Online Support Forums at

http://www.innotek.de/support/forums

InnoTek offers the full range of support options for its
enterprise customers. For more information on licensing and
support, please contact InnoTek at support@innotek.de.


5. Additional Information
~~~~~~~~~~~~~~~~~~~~~~~~~

5.1 Configuration Options
InnoTek's Font Engine for OS/2 provides various
configuration options. While the installation program
creates a default configuration that should fit well for
the vast majority of users, several useful configuration
options exist.

All configuration data is stored in the OS/2 registry
and can be edited using the OS/2 Registry Editor
(regedit2.exe). The reason for using the registry
instead of e.g. OS2.INI is the much higher flexibility
of the registry (hierachical organization) compared to
the limited OS2.INI format. The configuration data is
stored below the key

HKEY_CURRENT_USER\Software\InnoTek\InnoTek Font Engine

  Value: "Enabled", type: "DWORD"
     0: disabled
     1: enabled (default)
    Description: This allows you to globally enable or
    disable InnoTek's font engine.

  Value: "Logging", type: "DWORD"
     0: disabled (default)
     1: enabled
    Description: Creates a startup log file ft2lib_x.log
    (where x represents the x-th process using the library)
    in the boot drive root directory or in the file pointed
    to by the environment variable FT2_LOGGING_FILEBASE.
    This allows for easier problem determination with load
    failures due to specific font files.

Key: "Hinting"

  Value: "Mode", type: "DWORD"
     0: disabled
     1: enabled, use autohinter (default)

Key: "AntiAliasing"

  Value: "Enabled", type: "DWORD"
     0: disabled (default)
     1: enabled

  Value: "FaceSizeThreshold", type: "DWORD"
     <minimum point size for anti-aliasing>
   Description: this specifies the minimum point
   size below which no anti-aliasing will be performed

  Value: "Subpixel", type: "DWORD"
     0: disabled (default)
     1: horizontal mode
     2: vertical mode

Key: "Fonts"

  Key: "<name of font family>"

    Value: "Ignore", type: "DWORD"
      0: disabled (default)
      1: enabled
     Description: ignore the specified font, i.e.
     let GPI handle it.

    Value: "Mapping", type: "String"
      "<name of font family>"

    Key: "Hinting"
     (same as the global hinting options, allows to
     override global hinting options for a given font)

    Key: "AntiAliasing"
     (same as the global anti-aliasing options, allows
     to override global anti-aliasing options for a
     given font)

Key: "Applications"

  Key: "<name of the application exe file>"
   Description: this should be the applications's
   exe file name including the .exe extesion.

    Value: "Enabled", type: "DWORD"
      0: disabled (default)
      1: enabled
     Description: enable the font engine for the
     given application. This key is read at application
     startup time. No reboot required.  

Hinting is a technique where additional data
gets embedded into a font file describing how to
render the font at certain sizes. This technique
avoids typical problems such as different stroke
widths that result from pixel rendering. Typically,
small font sizes look clearer with hinting. However,
some users might prefer the "blurrier" or "softer"
rendering without hinting. Note that Adobe Type 1
fonts do not contain hinting information but
Freetype 2 contains the "autohinter" technology
which typically provides similar results. Even
though TrueType fonts may contain hinting
information, the current build does ignore them
due to several US patents protecting this
technique. Therefore even for TrueType fonts, the
autohinter module is being used.

Anti-aliasing is one of the main advantages of
InnoTek's Font Engine for OS/2 over the standard GPI
font rendering. It is enabled by default.

Font mapping allows you to specify that when an
application requests a specific font (by its name),
InnoTek's Font Engine for OS/2 will use a different
font instead. This is very useful to replace bitmap
fonts (which are still handled by GPI) by vector
fonts. It is also possible to override global options
for a given font using the same registry keys as for
the global options below the font name key. Unless an
option is specified, the global default will be
inherited.

Subpixel rendering is an innovative technique to further
improve font display / sharpness on LCD screens. It is
based on making use of the fact that each pixel on the
screen actually consists of three subpixels - a red,
a green and a blue. Depending in the intensitiy of each
subpixel, colors appear. Thus when setting a given pixel
to e.g. pure red, only one third of the pixel would be
illuminated. Subpixel rendering therefore groups such
subpixels around the glyph strokes to further refine
their appearance. If you get very close to the screen,
you will actually notice the color "distortions" around
the strokes. At first this can be a bit irritating but
most users will appreciate this rendering mode after
some time. Apple's Mac OS X and Microsoft's Windows XP
feature similar techniques (ClearType on XP). Note that
with the current Freetype 2 level, the quality of
subpixel rendering (esp. when combined with hinting)
is still limited. Usually, horizontal subpixel
rendering should be chosen which in most cases
(horizontally aligned screens) gives better results and
is also considerably faster than vertical subpixel
rendering.

Note that additional configuration options might be
added in upcoming revisions of the software.

5.2 Font files
The rendering quality largely depends on the quality
of the font files in use. OS/2 comes with several
standard fonts in which in general are very old and
do not make use of most of the more recent font file
format extensions. You will achieve best results by
installing some current high quality fonts. The
fonts distributed by Microsoft are good examples for
very high quality TrueType fonts. Microsoft makes
these fonts available for free use -- you can download
them from various sources in the internet. Another
good example is the Bitstream font pack which recently
has been made available for free distribution as part
of the XFree86 environment. You will find these fonts
in the internet as well. TrueType fonts usually
provide significantly better results than the older
Adobe Type 1 format. InnoTek recommends to only use
TrueType fonts.

5.3 Default font mapping
Several fonts in OS/2 exist as both bitmap fonts with
certain point sizes and Adobe Type 1 outline fonts. Due
to the bad rendering results of the OS/2 Adobe Type 1 and
TrueType font engines, Mozilla for OS/2 by default prefers
the OS/2 bitmap fonts. However, with InnoTek's Font
Engine for OS/2, the output quality of outline fonts always
exceeds the quality of bitmap fonts. Therefore, default
mappings have been included for the following fonts:

- Courier -> Courier (two fonts, identical names)
- Helv -> Helvetica
- Tms Rmn -> Times New Roman

In addition, there is a hardcoded mapping for the fonts
listed above in case the application requests a bitmap
font point size that does not exist. This mimics the
original GPI behavior.

5.4 Removing Earlier Versions of FT2LIB
Version 1.x of InnoTek's Font Engine for OS/2 applied
a patch to Mozilla for OS/2 in order to make it use the
replacement font engine instead of the standard OS/2
font engine. This is no longer required with the current
version. Therefore, the patch has to be undone manually
using the following steps:
- locate the installation(s) of Mozilla, Mozilla Firebird,
  IBM Web Browser for OS/2 that the font engine has been
  applied to
- restore components\gfx_os2.bak to
  components\gfx_os2.dll and MozillaFirebird.bak to
  MozillaFirebird.exe
In case this does not work, perform the following steps:
- execute "dllrname components\gfx_os2.dll ftgpi=pmgpi"
  using the "dllrname.exe" shipped with the InnoTek Font
  Engine for OS/2 installation package
- for Mozilla Firebird, execute the same command on
  "MozillaFirebird.exe"
Please note that the installation of the current FT2LIB
version will remove the ftgpi.dll library and unless you
perform the above steps correctly, your browser
applications will fail to load.


6. Known Problems / Restrictions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- enabled applications making use of additional PM
  windows such as printer drive dialogs or help manager
  windows may exhibit some visual problems

- when using font mapping, there can be some issues with
  font sizing, i.e. the mapped font might display larger
  or smaller than the original fonts and cause visual
  problems in certain applications

- the Greek characters 'mi' and 'delta' might not display
  when using Type 1 fonts. As a workaround, use TrueType
  fonts to display Greek characters

- Mozilla currently does not make use of the extended APIs
  provided by the InnoTek Font Engine for OS/2. Future
  versions of Mozilla are expected to make use of InnoTek's
  enhanced APIs for better Unicode support

- the font engine cannot serve as a general replacement for
  all applications. It can be enabled on a per application
  basis. InnoTek does not recommend enabling additional
  applications and will not provide assistance or guaranteed
  problem resolution for applications other then the
  certified applications.

- most configuration options will not be preserved when
  running the installation program. Also note that the
  format of the configuration options may change with new
  versions of the font engine

- the IBM truetype engine does not recognize certain DBCS fonts
  correctly and makes it impossible for FT2LIB to use them.
  There is a modified Freetype/2 replacement available that addresses
  this issue.

7. List of Changes
~~~~~~~~~~~~~~~~~~

2004-04-01: Release 2.40 Build 40

- added support OS/2 builtin bitmap fonts (dspres.dll)

- fonts with long face names were not recognized

- resolved sizing issues with Tms Rmn and Helv

- fixed character displacements with hinting turned off

- improved support for DBCS fonts

- fixed system deadlock situation

- fixed heap corruption problems

- improvements required by OpenOffice.org 1.1.1

- numerous other fixes

- removed timebomb

2004-02-09: Release 2.30 Preview 5 Build 38

- fix crash on font loading

- several other bugfixes

2004-02-02: Release 2.30 Preview 4 Build 35

- changed expiration date to March 31st 2004

- several bugfixes

2004-01-23: Release 2.10 Preview 3 Build 32

- fixed rending of the equal sign with TrueType fonts

- implemented exception logging for debugging purposes

- added italic simulation for typefaces without italics
  (note: there is no bold simluation support yet)

- several performance improvements

- many other improvements and bugfixes

2003-12-23: Release 2.10 Preview 2 Build 29

- fixed crashes with several malformatted font files

- added support for OS/2 bitmap fonts in NE format

- fixed memory leak leading to eventual PM corruption

- fixed face size mismatches in bitmap font replacement

- fixed font size threshold handling

- fixed face type recognition

- added startup logging for problem determination

2003-12-16: Release 2.10 Preview 1 Build 27

- major architectural enhancements to support other
  applications in addition to Mozilla

- added hooking, application patches are no longer
  required

- added support for OS/2 bitmap fonts

- in some cases, italic font styles would be displayed
  as regular

- numerous bug fixes and improvements

- NOTE: this is a preview version and it will not
  function after February 1st 2004!

2003-07-28: Release 1

- do not overwrite backup copies of Mozilla binaries
  if a previous version has been installed

- fixed distortion and crashes caused by heap corruption
  in the Freetype 2 caching subsystem

- fixed problems when using Mozilla in turbo mode

- fixed several crashes

2003-06-10: Technology Preview 2

- added support for Mozilla Firebird

- added support for LCD subpixel rendering

- fixed installation errors on LXLITE or LXOPT
  compressed Mozilla DLL files

- fixed installation errors with target path names
  containing spaces

- fixed font recognition with very long face names

- fixed random crashes due to heap corruption

- resolved memory leaks

- added workaround for buggy Matrox drivers (letters
  would not appear)

- added more configuration options

- turned on hinting by default

2003-05-23: Technology Preview 1

- initial distribution


8. Copyrights
~~~~~~~~~~~~~

InnoTek Font Engine for OS/2 is (C) 2003-2004 InnoTek
Systemberatung GmbH, portions (C) by others.

FreeType 2 is (C) by the FreeType Project
http://www.freetype.org
