Introduce AF_CONFIG_OPTION_TT_SIZE_METRICS configuration option.
* include/freetype/config/ftoption.h (AF_CONFIG_OPTION_TT_SIZE_METRICS): New option, commented out by default. * src/autofit/afloader.c (af_loader_load_glyph): Use AF_CONFIG_OPTION_TT_SIZE_METRICS to guard the corresponding code.
This commit is contained in:
parent
ab10ffcdd5
commit
0a5315d141
11
ChangeLog
11
ChangeLog
@ -1,3 +1,14 @@
|
||||
2017-04-27 Werner Lemberg <wl@gnu.org>
|
||||
|
||||
Introduce AF_CONFIG_OPTION_TT_SIZE_METRICS configuration option.
|
||||
|
||||
* include/freetype/config/ftoption.h
|
||||
(AF_CONFIG_OPTION_TT_SIZE_METRICS): New option, commented out by
|
||||
default.
|
||||
|
||||
* src/autofit/afloader.c (af_loader_load_glyph): Use
|
||||
AF_CONFIG_OPTION_TT_SIZE_METRICS to guard the corresponding code.
|
||||
|
||||
2017-04-26 Werner Lemberg <wl@gnu.org>
|
||||
|
||||
* include/freetype/freetype.h (FT_Render_Mode): Fix order.
|
||||
|
@ -886,7 +886,9 @@ FT_BEGIN_HEADER
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* Compile autofit module with Indic script support. */
|
||||
/* Compile autofit module with fallback Indic script support, covering */
|
||||
/* some scripts that the `latin' submodule of the autofit module doesn't */
|
||||
/* (yet) handle. */
|
||||
/* */
|
||||
#define AF_CONFIG_OPTION_INDIC
|
||||
|
||||
@ -905,6 +907,22 @@ FT_BEGIN_HEADER
|
||||
/* */
|
||||
#define AF_CONFIG_OPTION_USE_WARPER
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* Use TrueType-like size metrics for `light' auto-hinting. This option */
|
||||
/* exists mainly for backwards compatibility with GNU/Linux */
|
||||
/* distributions like Fedora that did not un-patch the following change */
|
||||
/* (which was present in FreeType between versions 2.4.6 and 2.7.1, */
|
||||
/* inclusive). */
|
||||
/* */
|
||||
/* 2011-07-16 Steven Chu <steven.f.chu@gmail.com> */
|
||||
/* */
|
||||
/* [truetype] Fix metrics on size request for scalable fonts. */
|
||||
/* */
|
||||
/* This problematic commit is now reverted (more or less). */
|
||||
/* */
|
||||
/* #define AF_CONFIG_OPTION_TT_SIZE_METRICS */
|
||||
|
||||
/* */
|
||||
|
||||
|
||||
|
@ -2933,27 +2933,34 @@ FT_BEGIN_HEADER
|
||||
* rendering. For monochrome output, use @FT_LOAD_TARGET_MONO
|
||||
* instead.
|
||||
*
|
||||
* FT_LOAD_TARGET_LIGHT ::
|
||||
* A lighter hinting algorithm for gray-level modes. Many generated
|
||||
* FT_LOAD_TARGET_SLIGHT ::
|
||||
* A slight hinting algorithm for gray-level modes. Many generated
|
||||
* glyphs are fuzzier but better resemble their original shape. This
|
||||
* is achieved by snapping glyphs to the pixel grid only vertically
|
||||
* (Y-axis), as is done by Microsoft's ClearType and Adobe's
|
||||
* proprietary font renderer. This preserves inter-glyph spacing in
|
||||
* (Y-axis), as is done by FreeType's new CFF engine or Microsoft's
|
||||
* ClearType font renderer. This preserves inter-glyph spacing in
|
||||
* horizontal text. The snapping is done either by the native font
|
||||
* driver, if the driver itself and the font support it, or by the
|
||||
* auto-hinter.
|
||||
*
|
||||
* Use this hinting mode if you mainly need integer advance widths
|
||||
* and want to avoid sub-pixel rendering.
|
||||
* Advance widths are not rounded to integer values; instead, metrics
|
||||
* are based on linearly scaled values. In particular this implies
|
||||
* that you have to apply sub-pixel rendering.
|
||||
*
|
||||
* FT_LOAD_TARGET_SLIGHT ::
|
||||
* This is similar to @FT_LOAD_TARGET_LIGHT with a main difference:
|
||||
* Advance widths are not rounded to integer values; instead, the
|
||||
* linearly scaled values are used. In particular this implies that
|
||||
* you have to apply sub-pixel rendering.
|
||||
* FT_LOAD_TARGET_LIGHT ::
|
||||
* This is similar to @FT_LOAD_TARGET_SLIGHT with a main difference:
|
||||
* It uses integer advance widths.
|
||||
*
|
||||
* In general, this mode yields better results than
|
||||
* @FT_LOAD_TARGET_LIGHT.
|
||||
* If configuration option AF_CONFIG_OPTION_TT_SIZE_METRICS is active,
|
||||
* TrueType-like metrics are used to make this mode behave similarly
|
||||
* as in unpatched FreeType versions between 2.4.6 and 2.7.1
|
||||
* (inclusive).
|
||||
*
|
||||
* This hinting mode is deprecated. In general,
|
||||
* @FT_LOAD_TARGET_SLIGHT always yields better results; additionally,
|
||||
* FT_LOAD_TARGET_LIGHT suffers from backwards compatibility issues
|
||||
* (see the documentation of AF_CONFIG_OPTION_TT_SIZE_METRICS in
|
||||
* `ftoption.h' for more details).
|
||||
*
|
||||
* FT_LOAD_TARGET_MONO ::
|
||||
* Strong hinting algorithm that should only be used for monochrome
|
||||
|
@ -252,6 +252,7 @@
|
||||
size_internal->autohint_mode = FT_LOAD_TARGET_MODE( load_flags );
|
||||
size_internal->autohint_metrics = size->metrics;
|
||||
|
||||
#ifdef AF_CONFIG_OPTION_TT_SIZE_METRICS
|
||||
if ( size_internal->autohint_mode != FT_RENDER_MODE_SLIGHT )
|
||||
{
|
||||
FT_Size_Metrics* size_metrics = &size_internal->autohint_metrics;
|
||||
@ -278,6 +279,7 @@
|
||||
FT_MulFix( face->max_advance_width,
|
||||
size_metrics->x_scale ) );
|
||||
}
|
||||
#endif /* AF_CONFIG_OPTION_TT_SIZE_METRICS */
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user