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>
|
2017-04-26 Werner Lemberg <wl@gnu.org>
|
||||||
|
|
||||||
* include/freetype/freetype.h (FT_Render_Mode): Fix order.
|
* 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
|
#define AF_CONFIG_OPTION_INDIC
|
||||||
|
|
||||||
|
@ -905,6 +907,22 @@ FT_BEGIN_HEADER
|
||||||
/* */
|
/* */
|
||||||
#define AF_CONFIG_OPTION_USE_WARPER
|
#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
|
* rendering. For monochrome output, use @FT_LOAD_TARGET_MONO
|
||||||
* instead.
|
* instead.
|
||||||
*
|
*
|
||||||
* FT_LOAD_TARGET_LIGHT ::
|
* FT_LOAD_TARGET_SLIGHT ::
|
||||||
* A lighter hinting algorithm for gray-level modes. Many generated
|
* A slight hinting algorithm for gray-level modes. Many generated
|
||||||
* glyphs are fuzzier but better resemble their original shape. This
|
* glyphs are fuzzier but better resemble their original shape. This
|
||||||
* is achieved by snapping glyphs to the pixel grid only vertically
|
* is achieved by snapping glyphs to the pixel grid only vertically
|
||||||
* (Y-axis), as is done by Microsoft's ClearType and Adobe's
|
* (Y-axis), as is done by FreeType's new CFF engine or Microsoft's
|
||||||
* proprietary font renderer. This preserves inter-glyph spacing in
|
* ClearType font renderer. This preserves inter-glyph spacing in
|
||||||
* horizontal text. The snapping is done either by the native font
|
* horizontal text. The snapping is done either by the native font
|
||||||
* driver, if the driver itself and the font support it, or by the
|
* driver, if the driver itself and the font support it, or by the
|
||||||
* auto-hinter.
|
* auto-hinter.
|
||||||
*
|
*
|
||||||
* Use this hinting mode if you mainly need integer advance widths
|
* Advance widths are not rounded to integer values; instead, metrics
|
||||||
* and want to avoid sub-pixel rendering.
|
* are based on linearly scaled values. In particular this implies
|
||||||
|
* that you have to apply sub-pixel rendering.
|
||||||
*
|
*
|
||||||
* FT_LOAD_TARGET_SLIGHT ::
|
* FT_LOAD_TARGET_LIGHT ::
|
||||||
* This is similar to @FT_LOAD_TARGET_LIGHT with a main difference:
|
* This is similar to @FT_LOAD_TARGET_SLIGHT with a main difference:
|
||||||
* Advance widths are not rounded to integer values; instead, the
|
* It uses integer advance widths.
|
||||||
* linearly scaled values are used. In particular this implies that
|
|
||||||
* you have to apply sub-pixel rendering.
|
|
||||||
*
|
*
|
||||||
* In general, this mode yields better results than
|
* If configuration option AF_CONFIG_OPTION_TT_SIZE_METRICS is active,
|
||||||
* @FT_LOAD_TARGET_LIGHT.
|
* 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 ::
|
* FT_LOAD_TARGET_MONO ::
|
||||||
* Strong hinting algorithm that should only be used for monochrome
|
* 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_mode = FT_LOAD_TARGET_MODE( load_flags );
|
||||||
size_internal->autohint_metrics = size->metrics;
|
size_internal->autohint_metrics = size->metrics;
|
||||||
|
|
||||||
|
#ifdef AF_CONFIG_OPTION_TT_SIZE_METRICS
|
||||||
if ( size_internal->autohint_mode != FT_RENDER_MODE_SLIGHT )
|
if ( size_internal->autohint_mode != FT_RENDER_MODE_SLIGHT )
|
||||||
{
|
{
|
||||||
FT_Size_Metrics* size_metrics = &size_internal->autohint_metrics;
|
FT_Size_Metrics* size_metrics = &size_internal->autohint_metrics;
|
||||||
|
@ -278,6 +279,7 @@
|
||||||
FT_MulFix( face->max_advance_width,
|
FT_MulFix( face->max_advance_width,
|
||||||
size_metrics->x_scale ) );
|
size_metrics->x_scale ) );
|
||||||
}
|
}
|
||||||
|
#endif /* AF_CONFIG_OPTION_TT_SIZE_METRICS */
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue