aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ports/SkFontHost_FreeType.cpp
diff options
context:
space:
mode:
authorGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2014-05-14 14:54:51 +0000
committerGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2014-05-14 14:54:51 +0000
commitd3031aa5ae90b796593a04c0da062024198e4769 (patch)
treebc452fd1b2e7db7ab6ba31eaad2bf7c1331f2204 /src/ports/SkFontHost_FreeType.cpp
parentf700fb2f139cc38f6ba3571db6cfe0a2e1bbc8c0 (diff)
Stage fixes for underline position.
R=reed@google.com Author: bungeman@google.com Review URL: https://codereview.chromium.org/271333002 git-svn-id: http://skia.googlecode.com/svn/trunk@14726 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/ports/SkFontHost_FreeType.cpp')
-rw-r--r--src/ports/SkFontHost_FreeType.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/ports/SkFontHost_FreeType.cpp b/src/ports/SkFontHost_FreeType.cpp
index ef80229415..565dc7244c 100644
--- a/src/ports/SkFontHost_FreeType.cpp
+++ b/src/ports/SkFontHost_FreeType.cpp
@@ -1407,7 +1407,12 @@ void SkScalerContext_FreeType::generateFontMetrics(SkPaint::FontMetrics* mx,
ymin = -SkIntToScalar(face->bbox.yMin) / upem;
ymax = -SkIntToScalar(face->bbox.yMax) / upem;
underlineThickness = SkIntToScalar(face->underline_thickness) / upem;
+#ifdef SK_IGNORE_UNDERLINE_POSITION_FIX
underlinePosition = -SkIntToScalar(face->underline_position) / upem;
+#else
+ underlinePosition = -SkIntToScalar(face->underline_position +
+ face->underline_thickness / 2) / upem;
+#endif
if(mx) {
mx->fFlags |= SkPaint::FontMetrics::kUnderlineThinknessIsValid_Flag;
@@ -1483,8 +1488,13 @@ void SkScalerContext_FreeType::generateFontMetrics(SkPaint::FontMetrics* mx,
mx->fXMax = xmax;
mx->fXHeight = x_height;
mx->fCapHeight = cap_height;
+#ifdef SK_IGNORE_UNDERLINE_POSITION_FIX
mx->fUnderlineThickness = underlineThickness;
mx->fUnderlinePosition = underlinePosition;
+#else
+ mx->fUnderlineThickness = underlineThickness * mxy;
+ mx->fUnderlinePosition = underlinePosition * mxy;
+#endif
}
if (my) {
my->fTop = ymax * myy;
@@ -1497,8 +1507,13 @@ void SkScalerContext_FreeType::generateFontMetrics(SkPaint::FontMetrics* mx,
my->fXMax = xmax;
my->fXHeight = x_height;
my->fCapHeight = cap_height;
+#ifdef SK_IGNORE_UNDERLINE_POSITION_FIX
my->fUnderlineThickness = underlineThickness;
my->fUnderlinePosition = underlinePosition;
+#else
+ my->fUnderlineThickness = underlineThickness * myy;
+ my->fUnderlinePosition = underlinePosition * myy;
+#endif
}
}