FreeType Changelog

What's new in FreeType 2.6.2

Jan 31, 2016
  • IMPORTANT CHANGES:
  • The auto-hinter now supports stem darkening, to be controlled by the new `no-stem-darkening' and `darkening-parameters' properties. This is an experimental feature contributed by Nikolaus Waxweiler, and the interface might change in a future release.
  • By default, stem darkening is now switched off (for both the CFF engine and the auto-hinter). The main reason is that you need linear alpha blending and gamma correction to get correct rendering results, and the latter is not yet available in most freely available rendering stacks like X11. Applying stem darkening without proper gamma correction leads to far too dark rendering results.
  • The meaning of `FT_RENDER_MODE_LIGHT' has been slightly modified. It now essentially means `no hinting along the horizontal axis'; in particular, no change of glyph advance widths. Consequently, the auto-hinter is used for all scalable font formats except for CFF. It is planned that other font-specific rendering engines (TrueType, Type 1) will follow.
  • MISCELLANEOUS:
  • The default LCD filter has been changed to be normalized and color-balanced.
  • For better compatibility with FontConfig, function `FT_Library_SetLcdFilter' accepts a new enumeration value `FT_LCD_FILTER_LEGACY1' (which has the same meaning as `FT_LCD_FILTER_LEGACY').
  • A large number of bugs have been detected by using the libFuzzer framework, which should further improve handling of invalid fonts. Thanks again to Kostya Serebryany and Bungeman!
  • `TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES', a new configuration option, controls the maximum number of executed opcodes within a bytecode program. You don't want to change this except for very special situations (e.g., making a library fuzzer spend less time to handle broken fonts).
  • The smooth renderer has been made faster.
  • The `ftstring' demo program now supports sub-pixel rendering; use key `l' to cycle through the LCD modes.
  • The `ftstring' demo program now supports colour rendering; use the `space' key to cycle through various colour combinations.
  • The graphical demo programs now use a default gamma value of 1.8 (instead of 1.2).

New in FreeType 2.3.12 (Apr 6, 2010)

  • IMPORTANT CHANGES
  • For `FT_Open_Face', new parameters are available to ignore
  • preferred family names: FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY and
  • FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY.
  • MISCELLANEOUS
  • Support for incremental font loading (controlled with the
  • FT_CONFIG_OPTION_INCREMENTAL macro) is now active by default.
  • Better support for vertical metrics.
  • Various minor bug fixes.

New in FreeType 2.3.11 (Oct 22, 2009)

  • Version 2.3.10 broke PCF support.

New in FreeType 2.3.9 (Jul 2, 2009)

  • IMPORTANT BUG FIXES:
  • Very unfortunately, FreeType 2.3.8 contained a change that broke its official ABI. The end result is that programs compiled against previous versions of the library, but dynamically linked to 2.3.8 can experience memory corruption if they call the `FT_Get_PS_Font_Info' function. We recommend all users to upgrade to 2.3.9 as soon as possible, or to downgrade to a previous release of the library if this is not an option. The origin of the bug is that a new field was added to the publicly defined `PS_FontInfoRec' structure. Unfortunately, objects of this type can be stack or heap allocated by callers of `FT_Get_PS_Font_Info', resulting in a memory buffer overwrite with its implementation in 2.3.8. If you want to know whether your code is vulnerable to this issue, simply search for the substrings `PS_FontInfo' and `PS_Font_Info' in your source code. If none is found, your code is safe and is not affected. The FreeType team apologizes for the problem.
  • The POSIX support of MacOS resource-fork fonts (Suitcase fonts and LaserWriter Type1 PostScript fonts) was broken in 2.3.8. If FreeType2 is built without Carbon framework, these fonts are not handled correctly. Version 2.3.7 didn't have this bug.
  • `FT_Get_Advance' (and `FT_Get_Advances') returned bad values for almost all font formats except TrueType fonts.
  • Fix a bug in the SFNT kerning table loader/parser which could crash the engine if certain malformed tables were encountered.
  • Composite SFNT bitmaps are now handled correctly.
  • IMPORTANT CHANGES:
  • The new functions `FT_Get_CID_Is_Internally_CID_keyed' and `FT_Get_CID_From_Glyph_Index' can be used to access CID-keyed CFF fonts via CID values. This code has been contributed by Michael Toftdal.
  • MISCELLANEOUS:
  • `FT_Outline_Get_InsideBorder' returns FT_STROKER_BORDER_RIGHT for empty outlines. This was incorrectly documented.
  • The `ftview' demo program now supports UTF-8 encoded strings.

New in FreeType 2.3.7 (Oct 4, 2008)

  • If the library was compiled on an i386 platform using gcc, and compiler option -O3 was given, `FT_MulFix' sometimes returned incorrect results which could have caused problems with `FT_Request_Metrics' and `FT_Select_Metrics', returning an incorrect descender size.
  • Pure CFFs without subfonts were scaled incorrectly if the font matrix was non-standard. This bug has been introduced in version 2.3.6.
  • The `style_name' field in the `FT_FaceRec' structure often contained a wrong value for Type 1 fonts. This misbehaviour has been introduced in version 2.3.6 while trying to fix another problem. [Note, however, that this value is informative only since the used algorithm to extract it is very simplistic.]
  • Two new macros, FT_OUTLINE_SMART_DROPOUTS and FT_OUTLINE_EXCLUDE_STUBS, have been introduced. Together with FT_OUTLINE_IGNORE_DROPOUTS (which was ignored previously) it is now possible to control the dropout mode of the `raster' module (for B&W rasterization), using the `flags' field in the `FT_Outline' structure.
  • The TrueType bytecode interpreter now passes the dropout mode to the B&W rasterizer. This greatly increases the output for small ppem values of many fonts like `pala.ttf'.