diff options
author | 2011-06-28 16:33:21 +0000 | |
---|---|---|
committer | 2011-06-28 16:33:21 +0000 | |
commit | 98dfb05a85a00f114408569e448874f811a5a9af (patch) | |
tree | 64e1011640bf242865cde61648e9edbad04d9bee /src | |
parent | 213c42bb69d375818cc0713a51c28c48ab501763 (diff) |
Fix core text font metrics - scale to em size and convert float to int
Review URL: http://codereview.appspot.com/4654070
git-svn-id: http://skia.googlecode.com/svn/trunk@1737 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src')
-rw-r--r-- | src/ports/SkFontHost_mac_coretext.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/ports/SkFontHost_mac_coretext.cpp b/src/ports/SkFontHost_mac_coretext.cpp index 2698bddc26..175613422d 100644 --- a/src/ports/SkFontHost_mac_coretext.cpp +++ b/src/ports/SkFontHost_mac_coretext.cpp @@ -718,7 +718,7 @@ static bool getWidthAdvance(CTFontRef ctFont, int gId, int16_t* data) { CGGlyph glyph = gId; CTFontGetAdvancesForGlyphs(ctFont, kCTFontHorizontalOrientation, &glyph, &advance, 1); - *data = advance.width; + *data = sk_float_round2int(advance.width); return true; } @@ -727,6 +727,8 @@ SkAdvancedTypefaceMetrics* SkFontHost::GetAdvancedTypefaceMetrics( uint32_t fontID, SkAdvancedTypefaceMetrics::PerGlyphInfo perGlyphInfo) { CTFontRef ctFont = GetFontRefFromFontID(fontID); + ctFont = CTFontCreateCopyWithAttributes(ctFont, CTFontGetUnitsPerEm(ctFont) + NULL, NULL); SkAdvancedTypefaceMetrics* info = new SkAdvancedTypefaceMetrics; CFStringRef fontName = CTFontCopyPostScriptName(ctFont); // Reserve enough room for the worst-case string, @@ -806,6 +808,7 @@ SkAdvancedTypefaceMetrics* SkFontHost::GetAdvancedTypefaceMetrics( getAdvanceData(ctFont, glyphCount, &getWidthAdvance)); } + CFSafeRelease(ctFont); return info; } |