📜 ⬆️ ⬇️

The invisible release of FreeType 2.5 - a breakthrough in font rendering

image The FreeType project is a library that is used to rasterize fonts and operations on them. Particularly used to display fonts in X11.

For a long time, FreeType has by default turned off support for correct hinting of TrueType files through the embedded byte-code of the font, since this technology has come under Apple patents. To bypass patents, the FreeType builds by default used an unpatented auto-hinting algorithm. In May 2010, patents expired, and since version 2.4.0, FreeType by default uses the correct hinting through the font byte-code interpreter.

Further more. At the end of 2012, a fundraising for the development of the project was announced . And in June 2013 the fundraising campaign was successfully completed , bringing the project 20 thousand dollars. Meanwhile, Adobe (which used to hinder technical progress with its patents!) And Google jointly made a number of improvements, which, in particular, significantly improved the performance of memorable hinting on all platforms supported by the project. Together with a number of other improvements, this led to the release of a new version - FreeType 2.5 .
')
Release Features
CHANGES BETWEEN 2.4.12 and 2.5

I. IMPORTANT BUG FIXES

- The cache manager function `FTC_Manager_Reset 'didn't flush the
cache

Ii. IMPORTANT CHANGES

- Behdad Esfahbod (on behalf of Google) contributed support for
color embedded bitmaps (eg. color emoji).

A new load flag, FT_LOAD_COLOR, makes FreeType load color
embedded-bitmaps, following this draft specification

color-emoji.googlecode.com/git/specification/v1.html

which defines two new SFNT tables, `CBDT 'and` CBLC' (named and
modeled after EBDT and EBLC, respectively) The color
bitmaps are stored in the new FT_PIXEL_MODE_BGRA format to
represent BGRA pre-multiplied sRGB images. If PNG support is
PNG color images available
specification are supported also.

Note that color bitmaps are converted to grayscale if client
didn't ask for color.

- The old FreeType CFF
engine is now disabled by default. It can be conditionally
compiled by defining the configuration macro
CFF_CONFIG_OPTION_OLD_ENGINE.

- As announced in the previous release, all code related to macro
FT_CONFIG_OPTION_OLD_INTERNALS has been removed, thus becoming
obsolete

Iii. MISCELLANEOUS

- The property API (`FT_Property_Get 'and` FT_Property_Set') is
now declared as stable.

However, are the experimental auto-hinter
properties `glyph-to-script-map 'and` fallback-script' which are
subject to change in a forthcoming release.

- `ftview 'has been updated to support color embedded bitmaps; it
can be toggled with key `c '. The small cache toggle
is now key `K '.

- It is now possible to control the version of the TrueType
hinting engine using the new `interpreter-version 'property of
the `truetype 'module: Versions 35 and 38 (the default) are
supported, which roughly corresponds to disable and enable
subpixel hinting support, respectively.

In both `ftview 'and` ftdiff', switching between the two
versions can be done with key `H '. In the `ftbench 'demo
program, command line option `-H 'has been extended to activate
the non-default interpreter version.

- The `ttdebug 'program has been further improved. In particular,
it accepts a new command line option `-H 'to select the hinting
engine.

- Another round of TrueType subpixel hinting fixes.

- The `apinames' tool can now create an import file for NetWare.

- 64bit compilation of the new CFF engine was buggy.

- Some fixes to improve robustness in memory-tight situations.

one.
image

2
image
FreeFype Using the Old CFF Rasterizer with Light Auto Hint (most common setting)

image
FreeType Using the Adobe CFF Rasterizer (now the default CFF rasterizer)

Strangely enough, ReactOS wins the most in this case, having received an advanced font engine for free.

Source: https://habr.com/ru/post/192882/


All Articles