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

Side by Side Diff: Source/platform/fonts/mac/SimpleFontDataMac.mm

Issue 275913005: Remove usePrinterFont() property of FontDescription (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebaselinining small caps cases, and subpixel virtual set Created 6 years, 7 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 | « Source/platform/fonts/mac/FontCacheMac.mm ('k') | 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 * Copyright (C) 2005, 2006, 2010, 2011 Apple Inc. All rights reserved. 2 * Copyright (C) 2005, 2006, 2010, 2011 Apple Inc. All rights reserved.
3 * Copyright (C) 2006 Alexey Proskuryakov 3 * Copyright (C) 2006 Alexey Proskuryakov
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 if (!m_derivedFontData) 112 if (!m_derivedFontData)
113 m_derivedFontData = DerivedFontData::create(isCustomFont()); 113 m_derivedFontData = DerivedFontData::create(isCustomFont());
114 if (!m_derivedFontData->compositeFontReferences) 114 if (!m_derivedFontData->compositeFontReferences)
115 m_derivedFontData->compositeFontReferences.adoptCF(CFDictionaryCreat eMutable(kCFAllocatorDefault, 1, &kCFTypeDictionaryKeyCallBacks, NULL)); 115 m_derivedFontData->compositeFontReferences.adoptCF(CFDictionaryCreat eMutable(kCFAllocatorDefault, 1, &kCFTypeDictionaryKeyCallBacks, NULL));
116 else { 116 else {
117 const SimpleFontData* found = static_cast<const SimpleFontData*>(CFD ictionaryGetValue(m_derivedFontData->compositeFontReferences.get(), static_cast< const void *>(key))); 117 const SimpleFontData* found = static_cast<const SimpleFontData*>(CFD ictionaryGetValue(m_derivedFontData->compositeFontReferences.get(), static_cast< const void *>(key)));
118 if (found) 118 if (found)
119 return found; 119 return found;
120 } 120 }
121 if (CFMutableDictionaryRef dictionary = m_derivedFontData->compositeFont References.get()) { 121 if (CFMutableDictionaryRef dictionary = m_derivedFontData->compositeFont References.get()) {
122 bool isUsingPrinterFont = platformData().isPrinterFont(); 122 NSFont *substituteFont = [key printerFont];
123 NSFont *substituteFont = isUsingPrinterFont ? [key printerFont] : [k ey screenFont];
124 123
125 CTFontSymbolicTraits traits = CTFontGetSymbolicTraits(toCTFontRef(su bstituteFont)); 124 CTFontSymbolicTraits traits = CTFontGetSymbolicTraits(toCTFontRef(su bstituteFont));
126 bool syntheticBold = platformData().syntheticBold() && !(traits & kC TFontBoldTrait); 125 bool syntheticBold = platformData().syntheticBold() && !(traits & kC TFontBoldTrait);
127 bool syntheticOblique = platformData().syntheticOblique() && !(trait s & kCTFontItalicTrait); 126 bool syntheticOblique = platformData().syntheticOblique() && !(trait s & kCTFontItalicTrait);
128 127
129 FontPlatformData substitutePlatform(substituteFont, platformData().s ize(), isUsingPrinterFont, syntheticBold, syntheticOblique, platformData().orien tation(), platformData().widthVariant()); 128 FontPlatformData substitutePlatform(substituteFont, platformData().s ize(), syntheticBold, syntheticOblique, platformData().orientation(), platformDa ta().widthVariant());
130 SimpleFontData* value = new SimpleFontData(substitutePlatform, isCus tomFont() ? CustomFontData::create() : nullptr); 129 SimpleFontData* value = new SimpleFontData(substitutePlatform, isCus tomFont() ? CustomFontData::create() : nullptr);
131 if (value) { 130 if (value) {
132 CFDictionaryAddValue(dictionary, key, value); 131 CFDictionaryAddValue(dictionary, key, value);
133 return value; 132 return value;
134 } 133 }
135 } 134 }
136 } 135 }
137 return 0; 136 return 0;
138 } 137 }
139 138
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 PassRefPtr<SimpleFontData> SimpleFontData::platformCreateScaledFontData(const Fo ntDescription& fontDescription, float scaleFactor) const 306 PassRefPtr<SimpleFontData> SimpleFontData::platformCreateScaledFontData(const Fo ntDescription& fontDescription, float scaleFactor) const
308 { 307 {
309 if (isCustomFont()) { 308 if (isCustomFont()) {
310 FontPlatformData scaledFontData(m_platformData); 309 FontPlatformData scaledFontData(m_platformData);
311 scaledFontData.m_size = scaledFontData.m_size * scaleFactor; 310 scaledFontData.m_size = scaledFontData.m_size * scaleFactor;
312 return SimpleFontData::create(scaledFontData, CustomFontData::create()); 311 return SimpleFontData::create(scaledFontData, CustomFontData::create());
313 } 312 }
314 313
315 BEGIN_BLOCK_OBJC_EXCEPTIONS; 314 BEGIN_BLOCK_OBJC_EXCEPTIONS;
316 float size = m_platformData.size() * scaleFactor; 315 float size = m_platformData.size() * scaleFactor;
317 FontPlatformData scaledFontData([[NSFontManager sharedFontManager] convertFo nt:m_platformData.font() toSize:size], size, m_platformData.isPrinterFont(), fal se, false, m_platformData.orientation()); 316 FontPlatformData scaledFontData([[NSFontManager sharedFontManager] convertFo nt:m_platformData.font() toSize:size], size, false, false, m_platformData.orient ation());
318 317
319 // AppKit resets the type information (screen/printer) when you convert a fo nt to a different size. 318 // Until we replace AppKit API (NSFontManager etc.), we always want to disab le hinting,
320 // We have to fix up the font that we're handed back. 319 // so we use the printerFont here.
321 scaledFontData.setFont(fontDescription.usePrinterFont() ? [scaledFontData.fo nt() printerFont] : [scaledFontData.font() screenFont]); 320 scaledFontData.setFont([scaledFontData.font() printerFont]);
322 321
323 if (scaledFontData.font()) { 322 if (scaledFontData.font()) {
324 NSFontManager *fontManager = [NSFontManager sharedFontManager]; 323 NSFontManager *fontManager = [NSFontManager sharedFontManager];
325 NSFontTraitMask fontTraits = [fontManager traitsOfFont:m_platformData.fo nt()]; 324 NSFontTraitMask fontTraits = [fontManager traitsOfFont:m_platformData.fo nt()];
326 325
327 if (m_platformData.m_syntheticBold) 326 if (m_platformData.m_syntheticBold)
328 fontTraits |= NSBoldFontMask; 327 fontTraits |= NSBoldFontMask;
329 if (m_platformData.m_syntheticOblique) 328 if (m_platformData.m_syntheticOblique)
330 fontTraits |= NSItalicFontMask; 329 fontTraits |= NSItalicFontMask;
331 330
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
439 RetainPtr<CGFontRef> runCGFont(AdoptCF, CTFontCopyGraphicsFont(runFont, 0)); 438 RetainPtr<CGFontRef> runCGFont(AdoptCF, CTFontCopyGraphicsFont(runFont, 0));
440 if (!CFEqual(runCGFont.get(), cgFont.get())) 439 if (!CFEqual(runCGFont.get(), cgFont.get()))
441 return false; 440 return false;
442 } 441 }
443 442
444 addResult.storedValue->value = true; 443 addResult.storedValue->value = true;
445 return true; 444 return true;
446 } 445 }
447 446
448 } // namespace WebCore 447 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/platform/fonts/mac/FontCacheMac.mm ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698