diff options
author | Nikolaus Waxweiler <madigens@gmail.com> | 2015-11-02 09:20:32 +0100 |
---|---|---|
committer | Werner Lemberg <wl@gnu.org> | 2015-11-02 09:20:32 +0100 |
commit | b2a85ad32b1f62fd186c018d681baa5adef925c6 (patch) | |
tree | 6290df219f9f1e7eb2cd2ed052a7dbc6a056f6de | |
parent | d682e510627086df010b0677003f8ac5e612e913 (diff) | |
download | freetype2-b2a85ad32b1f62fd186c018d681baa5adef925c6.tar.gz |
[autofit] Extend `AF_FaceGlobalsRec' to hold emboldening data.
* src/autofit/afglobal.h (AF_FaceGlobalsRec): Add fields.
* src/autofit/afglobal.c (af_face_globals_new): Initialize new
fields.
(af_face_globals_free): Reset new fields.
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | src/autofit/afglobal.c | 27 | ||||
-rw-r--r-- | src/autofit/afglobal.h | 16 |
3 files changed, 46 insertions, 7 deletions
@@ -1,5 +1,15 @@ 2015-11-02 Nikolaus Waxweiler <madigens@gmail.com> + [autofit] Extend `AF_FaceGlobalsRec' to hold emboldening data. + + * src/autofit/afglobal.h (AF_FaceGlobalsRec): Add fields. + + * src/autofit/afglobal.c (af_face_globals_new): Initialize new + fields. + (af_face_globals_free): Reset new fields. + +2015-11-02 Nikolaus Waxweiler <madigens@gmail.com> + [autofit] Add stem-darkening properties. Actual code follows in a later commit. diff --git a/src/autofit/afglobal.c b/src/autofit/afglobal.c index b071cc76f..f5a39574f 100644 --- a/src/autofit/afglobal.c +++ b/src/autofit/afglobal.c @@ -350,11 +350,17 @@ (FT_ULong)face->num_glyphs * sizeof ( FT_UShort ) ) ) goto Exit; - globals->face = face; - globals->glyph_count = face->num_glyphs; + globals->face = face; + globals->glyph_count = face->num_glyphs; /* right after the globals structure come the glyph styles */ - globals->glyph_styles = (FT_UShort*)( globals + 1 ); - globals->module = module; + globals->glyph_styles = (FT_UShort*)( globals + 1 ); + globals->module = module; + globals->stem_darkening_for_ppem = 0; + globals->darken_x = 0; + globals->darken_y = 0; + globals->standard_vertical_width = 0; + globals->standard_horizontal_width = 0; + globals->scale_down_factor = 0; #ifdef FT_CONFIG_OPTION_USE_HARFBUZZ globals->hb_font = hb_ft_font_create( face, NULL ); @@ -406,9 +412,16 @@ globals->hb_font = NULL; #endif - globals->glyph_count = 0; - globals->glyph_styles = NULL; /* no need to free this one! */ - globals->face = NULL; + globals->glyph_count = 0; + globals->stem_darkening_for_ppem = 0; + globals->darken_x = 0; + globals->darken_y = 0; + globals->standard_vertical_width = 0; + globals->standard_horizontal_width = 0; + globals->scale_down_factor = 0; + /* no need to free this one! */ + globals->glyph_styles = NULL; + globals->face = NULL; FT_FREE( globals ); } diff --git a/src/autofit/afglobal.h b/src/autofit/afglobal.h index ffb2f8606..a3112de2c 100644 --- a/src/autofit/afglobal.h +++ b/src/autofit/afglobal.h @@ -117,6 +117,22 @@ FT_BEGIN_HEADER AF_StyleMetrics metrics[AF_STYLE_MAX]; + /* Compute darkening amount once per size. Use this to check whether */ + /* darken_{x,y} needs to be recomputed. */ + FT_UShort stem_darkening_for_ppem; + /* Copy from e.g. AF_LatinMetrics.axis[AF_DIMENSION_HORZ] */ + /* to compute the darkening amount. */ + FT_Pos standard_vertical_width; + /* Copy from e.g. AF_LatinMetrics.axis[AF_DIMENSION_VERT] */ + /* to compute the darkening amount. */ + FT_Pos standard_horizontal_width; + /* The actual amount to darken a glyph along the X axis. */ + FT_Pos darken_x; + /* The actual amount to darken a glyph along the Y axis. */ + FT_Pos darken_y; + /* Amount to scale down by to keep emboldened points */ + /* on the Y-axis in pre-computed blue zones. */ + FT_Fixed scale_down_factor; AF_Module module; /* to access global properties */ } AF_FaceGlobalsRec; |