OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 2006, 2007, 2008, 2009 Google Inc. All rights reserved. | 2 * Copyright (c) 2006, 2007, 2008, 2009 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * 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 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
222 | 222 |
223 #if OS(WIN) | 223 #if OS(WIN) |
224 if (s_sideloadedFonts) { | 224 if (s_sideloadedFonts) { |
225 HashMap<String, sk_sp<SkTypeface>>::iterator sideloadedFont = | 225 HashMap<String, sk_sp<SkTypeface>>::iterator sideloadedFont = |
226 s_sideloadedFonts->find(name.data()); | 226 s_sideloadedFonts->find(name.data()); |
227 if (sideloadedFont != s_sideloadedFonts->end()) | 227 if (sideloadedFont != s_sideloadedFonts->end()) |
228 return sideloadedFont->value; | 228 return sideloadedFont->value; |
229 } | 229 } |
230 #endif | 230 #endif |
231 | 231 |
232 #if OS(WIN) | |
233 DCHECK_NE(family, FontFamilyNames::system_ui); | |
234 const char* familyNameForSkia = name.data(); | |
235 #else | |
236 // When the system UI font is localized, "system-ui" should have | |
237 // been replaced to the localied name. Use the Skia default family | |
drott
2016/10/12 11:01:59
Can you add some explanations where was it replace
kojii
2016/10/12 11:14:52
FontCacheLinux already has setSystemFontFamily() i
| |
238 // if it is not localized by using nullptr. | |
239 const char* familyNameForSkia = | |
240 family == FontFamilyNames::system_ui ? nullptr : name.data(); | |
241 #endif | |
242 | |
232 #if OS(LINUX) || OS(WIN) | 243 #if OS(LINUX) || OS(WIN) |
233 // On linux if the fontManager has been overridden then we should be calling | 244 // On linux if the fontManager has been overridden then we should be calling |
234 // the embedder provided font Manager rather than calling | 245 // the embedder provided font Manager rather than calling |
235 // SkTypeface::CreateFromName which may redirect the call to the default font | 246 // SkTypeface::CreateFromName which may redirect the call to the default font |
236 // Manager. On Windows the font manager is always present. | 247 // Manager. On Windows the font manager is always present. |
237 if (m_fontManager) | 248 if (m_fontManager) { |
238 return sk_sp<SkTypeface>(m_fontManager->matchFamilyStyle( | 249 return sk_sp<SkTypeface>(m_fontManager->matchFamilyStyle( |
239 name.data(), fontDescription.skiaFontStyle())); | 250 familyNameForSkia, fontDescription.skiaFontStyle())); |
251 } | |
240 #endif | 252 #endif |
241 | 253 |
242 // FIXME: Use m_fontManager, matchFamilyStyle instead of | 254 // FIXME: Use m_fontManager, matchFamilyStyle instead of |
243 // legacyCreateTypeface on all platforms. | 255 // legacyCreateTypeface on all platforms. |
244 sk_sp<SkFontMgr> fm(SkFontMgr::RefDefault()); | 256 sk_sp<SkFontMgr> fm(SkFontMgr::RefDefault()); |
245 return sk_sp<SkTypeface>( | 257 return sk_sp<SkTypeface>(fm->legacyCreateTypeface( |
246 fm->legacyCreateTypeface(name.data(), fontDescription.skiaFontStyle())); | 258 familyNameForSkia, fontDescription.skiaFontStyle())); |
247 } | 259 } |
248 | 260 |
249 #if !OS(WIN) | 261 #if !OS(WIN) |
250 std::unique_ptr<FontPlatformData> FontCache::createFontPlatformData( | 262 std::unique_ptr<FontPlatformData> FontCache::createFontPlatformData( |
251 const FontDescription& fontDescription, | 263 const FontDescription& fontDescription, |
252 const FontFaceCreationParams& creationParams, | 264 const FontFaceCreationParams& creationParams, |
253 float fontSize) { | 265 float fontSize) { |
254 CString name; | 266 CString name; |
255 sk_sp<SkTypeface> tf = createTypeface(fontDescription, creationParams, name); | 267 sk_sp<SkTypeface> tf = createTypeface(fontDescription, creationParams, name); |
256 if (!tf) | 268 if (!tf) |
257 return nullptr; | 269 return nullptr; |
258 | 270 |
259 return wrapUnique(new FontPlatformData( | 271 return wrapUnique(new FontPlatformData( |
260 tf, name.data(), fontSize, (numericFontWeight(fontDescription.weight()) > | 272 tf, name.data(), fontSize, (numericFontWeight(fontDescription.weight()) > |
261 200 + tf->fontStyle().weight()) || | 273 200 + tf->fontStyle().weight()) || |
262 fontDescription.isSyntheticBold(), | 274 fontDescription.isSyntheticBold(), |
263 ((fontDescription.style() == FontStyleItalic || | 275 ((fontDescription.style() == FontStyleItalic || |
264 fontDescription.style() == FontStyleOblique) && | 276 fontDescription.style() == FontStyleOblique) && |
265 !tf->isItalic()) || | 277 !tf->isItalic()) || |
266 fontDescription.isSyntheticItalic(), | 278 fontDescription.isSyntheticItalic(), |
267 fontDescription.orientation())); | 279 fontDescription.orientation())); |
268 } | 280 } |
269 #endif // !OS(WIN) | 281 #endif // !OS(WIN) |
270 | 282 |
271 } // namespace blink | 283 } // namespace blink |
OLD | NEW |