Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: src/ports/SkFontHost_mac.cpp

Issue 1076183004: Ammend font table data experiment on Mac. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2006 The Android Open Source Project 3 * Copyright 2006 The Android Open Source Project
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 #include "SkTypes.h" // Keep this before any #ifdef ... 9 #include "SkTypes.h" // Keep this before any #ifdef ...
10 10
(...skipping 895 matching lines...) Expand 10 before | Expand all | Expand 10 after
906 // However, in 10.10.2 color glyphs no longer rotate based on the font trans form. 906 // However, in 10.10.2 color glyphs no longer rotate based on the font trans form.
907 // So always make the font transform identity and place the transform on the context. 907 // So always make the font transform identity and place the transform on the context.
908 point = CGPointApplyAffineTransform(point, context.fInvTransform); 908 point = CGPointApplyAffineTransform(point, context.fInvTransform);
909 909
910 // Attempt to keep on the stack a hard reference to the font tables. 910 // Attempt to keep on the stack a hard reference to the font tables.
911 // This is an experiment to see if this affects crbug.com/413332 . 911 // This is an experiment to see if this affects crbug.com/413332 .
912 // When 10.6 headers are no longer supported, 'sbix' can be replaced with kC TFontTableSbix. 912 // When 10.6 headers are no longer supported, 'sbix' can be replaced with kC TFontTableSbix.
913 AutoCFRelease<CFDataRef> sbix; 913 AutoCFRelease<CFDataRef> sbix;
914 if (static_cast<SkTypeface_Mac*>(context.getTypeface())->fHasColorGlyphs) { 914 if (static_cast<SkTypeface_Mac*>(context.getTypeface())->fHasColorGlyphs) {
915 sbix.reset(CGFontCopyTableForTag(context.fCGFont, 'sbix')); 915 sbix.reset(CGFontCopyTableForTag(context.fCGFont, 'sbix'));
916 // Attempt to read from the sbix table data to determine if the returned data is valid.
917 const UInt8* sbixData = CFDataGetBytePtr(sbix);
918 CFIndex sbixLength = CFDataGetLength(sbix);
919 if (sbixLength > 0 && *sbixData > 0x80) {
920 // We need to actually do something to avoid this being optimized aw ay.
921 CFRetain(sbix);
922 CFRelease(sbix);
923 }
916 } 924 }
917 ctFontDrawGlyphs(context.fCTUnrotatedFont, &glyphID, &point, 1, fCG); 925 ctFontDrawGlyphs(context.fCTUnrotatedFont, &glyphID, &point, 1, fCG);
918 926
919 SkASSERT(rowBytesPtr); 927 SkASSERT(rowBytesPtr);
920 *rowBytesPtr = rowBytes; 928 *rowBytesPtr = rowBytes;
921 return image; 929 return image;
922 } 930 }
923 931
924 void SkScalerContext_Mac::getVerticalOffset(CGGlyph glyphID, SkPoint* offset) co nst { 932 void SkScalerContext_Mac::getVerticalOffset(CGGlyph glyphID, SkPoint* offset) co nst {
925 // Snow Leopard returns cgVertOffset in completely un-transformed FUnits (em space, y up). 933 // Snow Leopard returns cgVertOffset in completely un-transformed FUnits (em space, y up).
(...skipping 1367 matching lines...) Expand 10 before | Expand all | Expand 10 after
2293 } 2301 }
2294 return face; 2302 return face;
2295 } 2303 }
2296 }; 2304 };
2297 2305
2298 /////////////////////////////////////////////////////////////////////////////// 2306 ///////////////////////////////////////////////////////////////////////////////
2299 2307
2300 SkFontMgr* SkFontMgr::Factory() { 2308 SkFontMgr* SkFontMgr::Factory() {
2301 return SkNEW(SkFontMgr_Mac); 2309 return SkNEW(SkFontMgr_Mac);
2302 } 2310 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698