FreeType 2.2.1 has been released. It is available from
http://savannah.nongnu.org/download/freetype/ or http://sourceforge.net/project/showfiles.php?group_id=3157 The latter site also holds older versions of the FreeType library. See below for the relevant snippet from the CHANGES file. Enjoy! Werner ---------------------------------------------------------------------- FreeType 2 is a software font engine that is designed to be small, efficient, highly customizable, and portable while capable of producing high-quality output (glyph images) of most vector and bitmap font formats. Note that FreeType 2 is a font service and doesn't provide APIs to perform higher-level features, like text layout or graphics processing (e.g., colored text rendering, `hollowing', etc.). However, it greatly simplifies these tasks by providing a simple, easy to use, and uniform interface to access the content of font files. FreeType 2 is released under two open-source licenses: our own BSD-like FreeType License and the GPL. It can thus be used by any kind of projects, be they proprietary or not. ---------------------------------------------------------------------- CHANGES BETWEEN 2.2.1 and 2.2 I. IMPORTANT BUG FIXES - Various integer overflows have been fixed. - PFB fonts with MacOS resource fork weren't handled correctly on non-MacOS platforms. ====================================================================== CHANGES BETWEEN 2.2 and 2.1.10 (not released officially) I. IMPORTANT BUG FIXES - Vertical metrics for SFNT fonts were incorrect sometimes. - The FT_HAS_KERNING macro always returned 0. - CFF OpenType fonts didn't return correct vertical metrics for glyphs with outlines. - If FreeType was compiled without hinters, all font formats based on PS outlines weren't scaled correctly. II. IMPORTANT CHANGES - Version 2.2 no longer exposes its internals, this is, the header files located in the `include/freetype/internal' directory of the source package are not copied anymore by the `make install' command. Consequently, a number of rogue clients which directly access FreeType's internal functions and structures won't compile without modification. We provide patches for most of those rogue clients. See the following page for more information: http://www.freetype.org/freetype2/patches/rogue-patches.html Note that, as a convenience to our Unix desktop users, version 2.2 is *binary* compatible with FreeType 2.1.7, which means that installing this release on an existing distribution shall not break any working desktop. - FreeType's build mechanism has been redesigned. With GNU make it is now sufficient in most cases to edit two files: `modules.cfg', to select the library components, and the configuration file `include/freetype/config/ftoption.h' (which can be copied to the objects directory). Removing unused module directories to prevent its compilation and editing `include/freetype/config/ftmodule.h' is no longer necessary. - The LIGHT hinting algorithm produces more pleasant results. Also, using the FT_LOAD_TARGET_LIGHT flags within FT_Load_Glyph always forces auto-hinting, as a special exception. This allows you to experiment with it even if you have enabled the TrueType bytecode interpreter in your build. - The auto hinter now employs a new algorithm for CJK fonts, based on Akito Hirai's patch. Note that this only works for fonts with a Unicode charmap at the moment. - The following callback function types have changed slightly (by adding the `const' keyword where appropriate): FT_Outline_MoveToFunc FT_Outline_LineToFunc FT_Outline_ConicToFunc FT_Outline_CubicToFunc FT_SpanFunc FT_Raster_RenderFunc FT_Glyph_TransformFunc FT_Renderer_RenderFunc FT_Renderer_TransformFunc Note that this doesn't affect binary backward compatibility. - On MacOS, new APIs have been added as replacements for legacy APIs: `FT_New_Face_From_FSRef' for `FT_New_Face_From_FSSpec', and `FT_GetFile_From_Mac_ATS_Name' for `FT_GetFile_From_Mac_Name'. Legacy APIs are still available, if FreeType is built without disabling them. - A new API `FT_Select_Size' has been added to select a bitmap strike by its index. Code using other functions to select bitmap strikes should be updated to use this function. - A new API `FT_Get_SubGlyph_Info' has been added to retrieve subglyph data. This can be used by rogue clients which used to access the internal headers to get the corresponding data. - In 2.1.10, the behaviour of `FT_Set_Pixel_Sizes' was changed for BDF/PCF fonts, and only for them. This causes inconsistency. In this release, we undo the change. The intent of the change in 2.1.10 is to allow size selection through real dimensions, which can now be done through `FT_Request_Size'. - Some security issues were discovered and fixed in the CFF and Type 1 loader, causing crashes of FreeType by malformed font files. III. MISCELLANEOUS - The documentation for FT_LOAD_TARGET_XXX and FT_RENDER_MODE_XXX values now better reflects its usage and differences: One set is used to specify the hinting algorithm, the other to specify the pixel rendering mode. - FT_New_Face() and FT_New_Face_From_FSSpec() in ftmac.c have been changed to count supported scalable faces (sfnt, LWFN) only, and to return the number of available faces via face->num_faces. Unsupported bitmap faces (fbit, NFNT) are ignored. - builds/unix/configure has been improved for MacOS X. It now automatically checks available functions in Carbon library, and prepare to use newest functions by default. Options to specify the dependencies of each Carbon APIs (FSSpec, FSRef, old/new QuickDraw, ATS) are available too. By manual disabling of all QuickDraw functionality, FreeType can be built without `deprecated function' warnings on MacOS 10.4.x, but FT_GetFile_Mac_Name in ftmac.c then is changed to a dummy function, and returns an `unimplemented' error. For details see builds/mac/README. - SFNT cmap handling has been improved, mainly to run much faster with CJK fonts. - A new function `FT_Get_TrueType_Engine_Type (declared in `FT_MODULE_H') is provided to determine the status of the TrueType bytecode interpreter compiled into the library (patented, unpatented, unimplemented). - Vertical metrics of glyphs are synthesized if the font does not provide such information. You can tell whether the metrics are synthesized or not by checking the FT_FACE_FLAG_VERTICAL flag of the face. - The demo programs `ftview' and `ftstring' have been rewritten for better readability. `ftview' has a new switch `-p' to test FT_New_Memory_Face (instead of FT_New_Face). - FreeType now honours bit 1 in the `head' table of TrueType fonts (meaning `left sidebearing point at x=0'). This helps with some buggy fonts. - Rudimentary support for Adobe's new `SING Glyphlet' format. See http://www.adobe.com/products/indesign/sing_gaiji.html for more information. - The `ftdump' program from the `ft2demos' bundle now shows some information about charmaps. It also supports a new switch `-v' to increase verbosity. - Better AFM support. This includes track kerning support. _______________________________________________ Freetype-announce mailing list Freetype-announce@nongnu.org http://lists.nongnu.org/mailman/listinfo/freetype-announce