diff options
author | commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2014-05-14 14:54:51 +0000 |
---|---|---|
committer | commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2014-05-14 14:54:51 +0000 |
commit | d3031aa5ae90b796593a04c0da062024198e4769 (patch) | |
tree | bc452fd1b2e7db7ab6ba31eaad2bf7c1331f2204 /src/ports/SkFontHost_FreeType.cpp | |
parent | f700fb2f139cc38f6ba3571db6cfe0a2e1bbc8c0 (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.cpp | 15 |
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 } } |