Index: src/ports/SkFontHost_win.cpp |
diff --git a/src/ports/SkFontHost_win.cpp b/src/ports/SkFontHost_win.cpp |
index 4ca0fb9181404e36c42318e095a8c8fdb081b4b1..6f329bd975649cc7f7fb85b05d58cbcb976e1372 100755 |
--- a/src/ports/SkFontHost_win.cpp |
+++ b/src/ports/SkFontHost_win.cpp |
@@ -1061,6 +1061,18 @@ void SkScalerContext_GDI::generateFontMetrics(SkPaint::FontMetrics* mx, SkPaint: |
mx->fDescent = SkIntToScalar(-otm.otmDescent); |
mx->fBottom = SkIntToScalar(otm.otmrcFontBox.right); |
mx->fLeading = SkIntToScalar(otm.otmLineGap); |
+ mx->fUnderlineThickness = SkIntToScalar(otm.otmsUnderscoreSize); |
+ mx->fUnderlinePosition = SkIntToScalar(otm.otmsUnderscorePosition); |
+ |
+ if(!mx->fUnderlineThickness) |
bungeman-skia
2014/02/19 15:39:17
If we get here, we're only dealing with fonts whic
h.joshi
2014/02/19 17:12:03
Okey, Added these checks below as "face->underline
|
+ mx->unsetFontMetricsFlag(SkPaint::FontMetrics::kUnderlineThinknessIsValid_FontMetricFlag); |
+ else |
+ mx->setFontMetricsFlag(SkPaint::FontMetrics::kUnderlineThinknessIsValid_FontMetricFlag); |
+ |
+ if(!mx->fUnderlinePosition) |
+ mx->unsetFontMetricsFlag(SkPaint::FontMetrics::kUnderlinePositionIsValid_FontMetricsflag); |
+ else |
+ mx->setFontMetricsFlag(SkPaint::FontMetrics::kUnderlinePositionIsValid_FontMetricsflag); |
} |
if (my) { |
@@ -1074,6 +1086,18 @@ void SkScalerContext_GDI::generateFontMetrics(SkPaint::FontMetrics* mx, SkPaint: |
my->fMaxCharWidth = SkIntToScalar(otm.otmTextMetrics.tmMaxCharWidth); |
my->fXMin = SkIntToScalar(otm.otmrcFontBox.left); |
my->fXMax = SkIntToScalar(otm.otmrcFontBox.right); |
+ my->fUnderlineThickness = SkIntToScalar(otm.otmsUnderscoreSize); |
+ my->fUnderlinePosition = SkIntToScalar(otm.otmsUnderscorePosition); |
+ |
+ if(!my->fUnderlineThickness) |
+ my->unsetFontMetricsFlag(SkPaint::FontMetrics::kUnderlineThinknessIsValid_FontMetricFlag); |
+ else |
+ my->setFontMetricsFlag(SkPaint::FontMetrics::kUnderlineThinknessIsValid_FontMetricFlag); |
+ |
+ if(!my->fUnderlinePosition) |
+ my->unsetFontMetricsFlag(SkPaint::FontMetrics::kUnderlinePositionIsValid_FontMetricsflag); |
+ else |
+ my->setFontMetricsFlag(SkPaint::FontMetrics::kUnderlinePositionIsValid_FontMetricsflag); |
#endif |
my->fXHeight = SkIntToScalar(otm.otmsXHeight); |