[truetype] Hide Infinality.

Remove Infinality as an option before its complete extraction.

* include/freetype/ftoption.h: Remove the Infinality option.
* devel/ftoption.h: Ditto.
* include/freetype/ftdriver.h (TT_INTERPRETER_VERSION_38): Is 40 now.
This commit is contained in:
Alexei Podtelezhnikov 2023-02-17 04:22:24 +00:00
parent 74ea5454cc
commit bbfcd79eac
3 changed files with 17 additions and 86 deletions

View File

@ -661,36 +661,12 @@ FT_BEGIN_HEADER
* not) instructions in a certain way so that all TrueType fonts look like * not) instructions in a certain way so that all TrueType fonts look like
* they do in a Windows ClearType (DirectWrite) environment. See [1] for a * they do in a Windows ClearType (DirectWrite) environment. See [1] for a
* technical overview on what this means. See `ttinterp.h` for more * technical overview on what this means. See `ttinterp.h` for more
* details on the LEAN option. * details on this option.
* *
* There are three possible values. * The new default mode focuses on applying a minimal set of rules to all
* * fonts indiscriminately so that modern and web fonts render well while
* Value 1: * legacy fonts render okay. The corresponding interpreter version is v40.
* This value is associated with the 'Infinality' moniker, contributed by * The so-called Infinality mode (v38) is no longer available in FreeType.
* an individual nicknamed Infinality with the goal of making TrueType
* fonts render better than on Windows. A high amount of configurability
* and flexibility, down to rules for single glyphs in fonts, but also
* very slow. Its experimental and slow nature and the original
* developer losing interest meant that this option was never enabled in
* default builds.
*
* The corresponding interpreter version is v38.
*
* Value 2:
* The new default mode for the TrueType driver. The Infinality code
* base was stripped to the bare minimum and all configurability removed
* in the name of speed and simplicity. The configurability was mainly
* aimed at legacy fonts like 'Arial', 'Times New Roman', or 'Courier'.
* Legacy fonts are fonts that modify vertical stems to achieve clean
* black-and-white bitmaps. The new mode focuses on applying a minimal
* set of rules to all fonts indiscriminately so that modern and web
* fonts render well while legacy fonts render okay.
*
* The corresponding interpreter version is v40.
*
* Value 3:
* Compile both, making both v38 and v40 available (the latter is the
* default).
* *
* By undefining these, you get rendering behavior like on Windows without * By undefining these, you get rendering behavior like on Windows without
* ClearType, i.e., Windows XP without ClearType enabled and Win9x * ClearType, i.e., Windows XP without ClearType enabled and Win9x
@ -705,9 +681,7 @@ FT_BEGIN_HEADER
* [1] * [1]
* https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx * https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx
*/ */
/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING 1 */ #define TT_CONFIG_OPTION_SUBPIXEL_HINTING
/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING 2 */
#define TT_CONFIG_OPTION_SUBPIXEL_HINTING ( 1 | 2 )
/************************************************************************** /**************************************************************************
@ -977,21 +951,14 @@ FT_BEGIN_HEADER
/* /*
* The next three macros are defined if native TrueType hinting is * The next two macros are defined if native TrueType hinting is
* requested by the definitions above. Don't change this. * requested by the definitions above. Don't change this.
*/ */
#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER #ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
#define TT_USE_BYTECODE_INTERPRETER #define TT_USE_BYTECODE_INTERPRETER
#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING #ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
#if TT_CONFIG_OPTION_SUBPIXEL_HINTING & 1
#define TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
#endif
#if TT_CONFIG_OPTION_SUBPIXEL_HINTING & 2
#define TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL #define TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
#endif #endif
#endif
#endif #endif

View File

@ -661,36 +661,12 @@ FT_BEGIN_HEADER
* not) instructions in a certain way so that all TrueType fonts look like * not) instructions in a certain way so that all TrueType fonts look like
* they do in a Windows ClearType (DirectWrite) environment. See [1] for a * they do in a Windows ClearType (DirectWrite) environment. See [1] for a
* technical overview on what this means. See `ttinterp.h` for more * technical overview on what this means. See `ttinterp.h` for more
* details on the LEAN option. * details on this option.
* *
* There are three possible values. * The new default mode focuses on applying a minimal set of rules to all
* * fonts indiscriminately so that modern and web fonts render well while
* Value 1: * legacy fonts render okay. The corresponding interpreter version is v40.
* This value is associated with the 'Infinality' moniker, contributed by * The so-called Infinality mode (v38) is no longer available in FreeType.
* an individual nicknamed Infinality with the goal of making TrueType
* fonts render better than on Windows. A high amount of configurability
* and flexibility, down to rules for single glyphs in fonts, but also
* very slow. Its experimental and slow nature and the original
* developer losing interest meant that this option was never enabled in
* default builds.
*
* The corresponding interpreter version is v38.
*
* Value 2:
* The new default mode for the TrueType driver. The Infinality code
* base was stripped to the bare minimum and all configurability removed
* in the name of speed and simplicity. The configurability was mainly
* aimed at legacy fonts like 'Arial', 'Times New Roman', or 'Courier'.
* Legacy fonts are fonts that modify vertical stems to achieve clean
* black-and-white bitmaps. The new mode focuses on applying a minimal
* set of rules to all fonts indiscriminately so that modern and web
* fonts render well while legacy fonts render okay.
*
* The corresponding interpreter version is v40.
*
* Value 3:
* Compile both, making both v38 and v40 available (the latter is the
* default).
* *
* By undefining these, you get rendering behavior like on Windows without * By undefining these, you get rendering behavior like on Windows without
* ClearType, i.e., Windows XP without ClearType enabled and Win9x * ClearType, i.e., Windows XP without ClearType enabled and Win9x
@ -705,9 +681,7 @@ FT_BEGIN_HEADER
* [1] * [1]
* https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx * https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx
*/ */
/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING 1 */ #define TT_CONFIG_OPTION_SUBPIXEL_HINTING
#define TT_CONFIG_OPTION_SUBPIXEL_HINTING 2
/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING ( 1 | 2 ) */
/************************************************************************** /**************************************************************************
@ -977,21 +951,14 @@ FT_BEGIN_HEADER
/* /*
* The next three macros are defined if native TrueType hinting is * The next two macros are defined if native TrueType hinting is
* requested by the definitions above. Don't change this. * requested by the definitions above. Don't change this.
*/ */
#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER #ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
#define TT_USE_BYTECODE_INTERPRETER #define TT_USE_BYTECODE_INTERPRETER
#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING #ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
#if TT_CONFIG_OPTION_SUBPIXEL_HINTING & 1
#define TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
#endif
#if TT_CONFIG_OPTION_SUBPIXEL_HINTING & 2
#define TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL #define TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
#endif #endif
#endif
#endif #endif

View File

@ -651,11 +651,8 @@ FT_BEGIN_HEADER
* Windows~98; only grayscale and B/W rasterizing is supported. * Windows~98; only grayscale and B/W rasterizing is supported.
* *
* TT_INTERPRETER_VERSION_38 :: * TT_INTERPRETER_VERSION_38 ::
* Version~38 corresponds to MS rasterizer v.1.9; it is roughly * Version~38 is the same Version~40. The original 'Infinality' code is
* equivalent to the hinting provided by DirectWrite ClearType (as can * no longer available.
* be found, for example, in the Internet Explorer~9 running on
* Windows~7). It is used in FreeType to select the 'Infinality'
* subpixel hinting code. The code may be removed in a future version.
* *
* TT_INTERPRETER_VERSION_40 :: * TT_INTERPRETER_VERSION_40 ::
* Version~40 corresponds to MS rasterizer v.2.1; it is roughly * Version~40 corresponds to MS rasterizer v.2.1; it is roughly
@ -760,7 +757,7 @@ FT_BEGIN_HEADER
* *
*/ */
#define TT_INTERPRETER_VERSION_35 35 #define TT_INTERPRETER_VERSION_35 35
#define TT_INTERPRETER_VERSION_38 38 #define TT_INTERPRETER_VERSION_38 40
#define TT_INTERPRETER_VERSION_40 40 #define TT_INTERPRETER_VERSION_40 40