[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2] master b2a85ad 2/5: [autofit] Extend `AF_FaceGlobalsRec' to
From: |
Werner LEMBERG |
Subject: |
[freetype2] master b2a85ad 2/5: [autofit] Extend `AF_FaceGlobalsRec' to hold emboldening data. |
Date: |
Tue, 03 Nov 2015 09:57:19 +0000 |
branch: master
commit b2a85ad32b1f62fd186c018d681baa5adef925c6
Author: Nikolaus Waxweiler <address@hidden>
Commit: Werner Lemberg <address@hidden>
[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.
---
ChangeLog | 10 ++++++++++
src/autofit/afglobal.c | 27 ++++++++++++++++++++-------
src/autofit/afglobal.h | 16 ++++++++++++++++
3 files changed, 46 insertions(+), 7 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 5286c87..697167b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
2015-11-02 Nikolaus Waxweiler <address@hidden>
+ [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 <address@hidden>
+
[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 b071cc7..f5a3957 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 ffb2f86..a3112de 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;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2] master b2a85ad 2/5: [autofit] Extend `AF_FaceGlobalsRec' to hold emboldening data.,
Werner LEMBERG <=