From d3031aa5ae90b796593a04c0da062024198e4769 Mon Sep 17 00:00:00 2001 From: "commit-bot@chromium.org" Date: Wed, 14 May 2014 14:54:51 +0000 Subject: 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 --- src/ports/SkFontHost_FreeType.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/ports/SkFontHost_FreeType.cpp') 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 } } -- cgit v1.2.3