diff options
author | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-11-26 23:21:45 +0000 |
---|---|---|
committer | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-11-26 23:21:45 +0000 |
commit | 653b2a10f65a1c1bd42f22998bc9ed3a0268b88f (patch) | |
tree | d6daa813c17dcaa287771883348f770d77ce687e /skia/ports | |
parent | 9b98c97f70bdbd19360c52af0c68672c3789446f (diff) | |
download | chromium_src-653b2a10f65a1c1bd42f22998bc9ed3a0268b88f.zip chromium_src-653b2a10f65a1c1bd42f22998bc9ed3a0268b88f.tar.gz chromium_src-653b2a10f65a1c1bd42f22998bc9ed3a0268b88f.tar.bz2 |
Linux: Match the tmMaxCharWidth of Windows exactly.
The metric used is totally wrong, it's much larger than the largest advance of
any glyph in the font. However, it's wrong in exactly the same way as Windows
is.
Review URL: http://codereview.chromium.org/12505
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6073 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'skia/ports')
-rw-r--r-- | skia/ports/SkFontHost_FreeType.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/skia/ports/SkFontHost_FreeType.cpp b/skia/ports/SkFontHost_FreeType.cpp index 3011811..46c86b6 100644 --- a/skia/ports/SkFontHost_FreeType.cpp +++ b/skia/ports/SkFontHost_FreeType.cpp @@ -792,6 +792,7 @@ void SkScalerContext_FreeType::generateFontMetrics(SkPaint::FontMetrics* mx, SkP SkFixed scaleY = fScaleY; SkFixed mxy = fMatrix22.xy; SkFixed myy = fMatrix22.yy; + SkScalar xrange = static_cast<SkScalar>(face->bbox.xMax - face->bbox.xMin) / upem; int leading = face->height - face->ascender + face->descender; if (leading < 0) @@ -817,7 +818,7 @@ void SkScalerContext_FreeType::generateFontMetrics(SkPaint::FontMetrics* mx, SkP y = SkFixedMul(myy, y); pts[i].set(SkFixedToScalar(x), SkFixedToScalar(y)); } - + if (mx) { mx->fTop = pts[0].fX; @@ -827,6 +828,7 @@ void SkScalerContext_FreeType::generateFontMetrics(SkPaint::FontMetrics* mx, SkP mx->fLeading = pts[4].fX; mx->fHeight = pts[5].fX; mx->fAvgCharWidth = pts[6].fX; + mx->fXRange = xrange; // The VDMX metrics only make sense in the horizontal direction // I believe @@ -841,6 +843,7 @@ void SkScalerContext_FreeType::generateFontMetrics(SkPaint::FontMetrics* mx, SkP my->fLeading = pts[4].fY; my->fHeight = pts[5].fY; my->fAvgCharWidth = pts[6].fY; + my->fXRange = xrange; my->fVDMXMetricsValid = false; // Attempt to parse the VDMX table to get exact metrics |