📄 changes
字号:
LATEST CHANGES BETWEEN 2.1.10 and 2.1.9 I. IMPORTANT BUG FIXES - The size comparison for BDF and PCF files could fail sometimes. - Some CFF files were still not loaded correctly. Patch from Derek Noonburg. - The stroker still had some serious bugs. - Boris Letocha fixed a bug in the TrueType interpreter: The NPUSHW instruction wasn't skipped correctly in IF clauses. Some fonts like `Helvetica 75 Bold' failed. - Another serious bug in handling TrueType hints caused many distortions. It has been introduced in version 2.1.8, and it is highly recommended to upgrade. - FreeType didn't properly parse empty Type 1 glyphs. - An unbound dynamic buffer growth was fixed in the PFR loader. - Several bugs have been fixed in the cache sub-system. - FreeType behaved incorrectly when resizing two distinct but very close character pixel sizes through `FT_Set_Char_Size' (Savannah bug #12263). - The auto-hinter didn't work properly for fonts without a Unicode charmap -- it even refused to load the glyphs. II. IMPORTANT CHANGES - Many fixes have been applied to drastically reduce the amount of heap memory used by FreeType, especially when using memory-mapped font files (which is the default on Unix systems which support them). - The auto-hinter has been replaced with a new module, called the `auto-fitter'. It consumes less memory than its predecessor, and it is prepared to support non-latin scripts better in next releases. - George Williams contributed code to read kerning data from PFM files. - FreeType now uses the TT_NAME_ID_PREFERRED_FAMILY and TT_NAME_ID_PREFERRED_SUBFAMILY strings (if available) for setting family and style in SFNT fonts (patch from Kornfeld Eliyahu Peter). - A new API `FT_Sfnt_Table_Info' (in FT_TRUETYPE_TABLES_H) has been added to retrieve name and size information of SFNT tables. - A new API `FT_OpenType_Validate' (in FT_OPENTYPE_VALIDATE_H) has been added to validate OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF). After validation it is no longer necessary to check for errors in those tables while accessing them. Note that this module might be moved to another library in the future to avoid a tight dependency between FreeType and the OpenType specification. - A new API in FT_BITMAP_H (`FT_Bitmap_New', `FT_Bitmap_Convert', `FT_Bitmap_Copy', `FT_Bitmap_Embolden', `FT_Bitmap_Done') has been added. Its use is to convert an FT_Bitmap structure in 1bpp, 2bpp, 4bpp, or 8bpp format into another 8bpp FT_Bitmap, probably using a different pitch, and to further manipulate it. - A new API `FT_Outline_Embolden' (in FT_OUTLINE_H) gives finer control how outlines are embolded. - `FT_GlyphSlot_Embolden' (in FT_SYNTHESIS_H) now handles bitmaps also (code contributed by Chia I Wu). Note that this function is still experimental and may be replaced with a better API. - The method how BDF and PCF bitmap fonts are accessed has been refined. Formerly, FT_Set_Pixel_Sizes and FT_Set_Char_Size were synonyms in FreeType's BDF and PCF interface. This has changed now. FT_Set_Pixel_Sizes should be used to select the actual font dimensions (the `strike', which is the sum of the `FONT_ASCENT' and `FONT_DESCENT' properties), while FT_Set_Char_Size selects the `nominal' size (the `PIXELSIZE' property). In both functions, the width parameter is ignored. III. MISCELLANEOUS - The BDF driver no longer converts all returned bitmaps with a depth of 2bpp or 4bpp to a depth of 8bpp. The documentation has not mentioned this explicitly, but implementors might have relied on this after looking into the source files. - A new option `--ftversion' has been added to freetype-config to return the FreeType version. - The memory debugger has been updated to dump allocation statistics on all allocation sources in the library. This is useful to spot greedy allocations when loading and processing fonts. - We removed a huge array of constant pointers to constant strings in the `psnames' module. The problem was that compilations in PIC mode (i.e., when generating a Unix shared object/dll) put the array into the non-shared writable section of the library since absolute pointers are not relocatable by nature. This reduces the memory consumption by approximately 16KByte per process linked to FreeType. We now also store the array in a compressed form (as a trie) which saves about 20KByte of code as well. - Kirill Smelkov provided patches to make src/raster/ftraster.c compile stand-alone again.======================================================================LATEST CHANGES BETWEEN 2.1.9 and 2.1.8 I. IMPORTANT BUG FIXES - The function `FT_Get_CharMap_Index' was only declared, without any real code. For consistency, it has been renamed to `FT_Get_Charmap_Index'. (This function is needed to implement cmap caches.) - `FT_Outline_Get_BBox' sometimes returned incorrect values for conic outlines (e.g., for TrueType fonts). - Handling of `bhed' table has been fixed. - The TrueType driver with enabled byte code interpreter sometimes returned artifacts due to incorrect rounding. This bug has been introduced after version 2.1.4. - The BDF driver dropped the last glyph in the font. - The BDF driver now uses the DEFAULT_CHAR property (if available) to select a glyph shape for the undefined glyph. - The stroker failed for closed outlines and single points. II. IMPORTANT CHANGES - George Williams contributed code to handle Apple's font distortion technology found in GX fonts (`avar', `cvar', `fvar', and `gvar' tables; the Multiple Masters API has been slightly extended to cope with the new functionality). - The `FT_GlyphSlotRec' structure has been extended: The elements `lsb_delta' and `rsb_delta' give the difference between hinted and unhinted left and right side bearings if autohinting is active. Using those values can improve the inter-letter spacing considerably. See the documentation of `FT_GlyphSlotRec' and the `ftstring' demo program how to use it. - Loading TrueType and Type 1 fonts has been made much faster. - The stroker is no longer experimental (but the cache subsystem still is). III. MISCELLANEOUS - A new documentation file `formats.txt' describes various font formats supported (and not supported) by FreeType.======================================================================LATEST CHANGES BETWEEN 2.1.8 and 2.1.7 I. IMPORTANT BUG FIXES - The native TrueType hinter contained some bugs which prevented some fonts to be rendered correctly, most notably Legendum.otf. - The PostScript hinter now produces improved results. - The linear advance width and height values were incorrectly rounded, making them virtually unusable if not loaded with FT_LOAD_LINEAR_DESIGN. - Indexing CID-keyed CFF fonts is now working: The glyph index is correctly treated as a CID, similar to FreeType's CID driver module. Note that CID CMap support is still missing. - The FT_FACE_FLAGS_GLYPH_NAMES flag is now set correctly for all font formats. - Some subsetted Type 1 fonts weren't parsed correctly. This bug has been introduced in 2.1.7. In summary, the Type 1 parser has become more robust. - Non-decimal numbers weren't parsed correctly in PS fonts. - The WinFNT driver now correctly reports FT_ENCODING_NONE for all but one encoding. Use the new FT_WinFNT_ID_XXX values together with FT_Get_WinFNT_Header() to get the WinFNT charset ID. - The descender metrics (face->size->metrics.descender) for WinFNT bitmap fonts had the wrong sign. - The (emulated) `seac' support for CFF fonts was broken. - The `flex' operator didn't work for CFF fonts. - PS glyphs which use the `hintmask' operator haven't been rendered correctly in some cases. - Metrics for BDF and PCF bitmap font formats have been fixed. - Autohinting is now disabled for glyphs which are vertically distorted or mirrored (using a transformation matrix). This fixes a bug which produced zero-height glyphs. - The `freetype-config' script now handles --prefix and --exec-prefix correctly; it also returns the proper --rpath (or -R) value if FreeType has been built as a shared library. II. IMPORTANT CHANGES - Both PCF and BDF drivers now handle the SETWIDTH_NAME and ADD_STYLE_NAME properties. Values are appended to face->style_name; example: `Bold SemiCondensed'. - The PCF driver now handles bitmap fonts compressed with the LZW algorithm (extension .pcf.Z, compressed with `compress'). - A new API function `FT_Get_CMap_Language_ID' (declared in `tttables.h') is available to get the language ID of a TrueType/SFNT cmap. - The hexadecimal format of data after the `StartData' command in CID-keyed Type 1 fonts is now supported. While this can't occur in file-based fonts, it can happen in document-embedded resources of PostScript documents. - Embedded bitmaps in SFNT-based CFF fonts are now supported. - A simple API is now available to control FreeType's tracing mechanism if compiled with FT_DEBUG_LEVEL_TRACE. See the file `ftdebug.h' for more details. - YAMATO Masatake contributed improved handling of MacOS resource forks on non-MacOS platforms (for example, Linux can mount MacOS file systems). - Support for MacOS has been improved; there is now a new function `FT_New_Face_From_FSSpec' similar to `FT_New_Face' except that it accepts an FSSpec instead of a path. - The cache sub-system has been rewritten. - There is now support for deinstallation of faces. - A new API function `FTC_Manager_RemoveFaceID' has been added to delete all `idle' nodes that correspond to a given FTC_FaceID. All `locked' nodes (i.e., those with a reference count > 0), will be modified to prevent them from appearing in further lookups (they will be cleaned normally when their reference count reaches 0). - There is now support for point scaling (i.e., providing character sizes in points + dpis, instead of pixels). - Three abstract cache classes are now available: FTC_GCache: Used to store one glyph item per cache node, with the ability to group common attributes into `families'. This replaces the old FTC_GlyphCache class. FTC_ICache: Used to store one FT_Glyph per cache node. This extends FTC_GCache. Family definition, family comparison, and glyph loading are however left to sub-classes. FTC_SCache: Used to store up to 16 small bitmaps per cache node. This extends FTC_GCache. Family definition, family comparison and glyph loading are however left to sub-classes. - The file `src/cache/ftcbasic.c' implements: FTC_ImageCache: Extends FTC_ICache; implements family definitions and glyph loading similar to the old API. FTC_SBitCache: Extends FTC_SCache, implements family definitions and glyph loading similar to the old API Client applications should be able to extend FTC_GCache, FTC_ICache, or FTC_SCache much more easily (i.e., less code to write, and less callbacks). For example, one could envision caches that are capable of storing transformed (obliqued), stroked, emboldened, or colored glyph images. Use `ftcbasic.c' as an example.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -