OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2007 Nicholas Shanks <contact@nickshanks.com> | 2 * Copyright (C) 2007 Nicholas Shanks <contact@nickshanks.com> |
3 * Copyright (C) 2008 Apple Inc. All rights reserved. | 3 * Copyright (C) 2008 Apple Inc. All rights reserved. |
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 * | 8 * |
9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
217 FontTraits fontTraits = desiredTraits.bitfield() ? desiredTraits : traits(); | 217 FontTraits fontTraits = desiredTraits.bitfield() ? desiredTraits : traits(); |
218 | 218 |
219 unsigned options = | 219 unsigned options = |
220 static_cast<unsigned>(m_fields.m_syntheticItalic) << 6 | // bit 7 | 220 static_cast<unsigned>(m_fields.m_syntheticItalic) << 6 | // bit 7 |
221 static_cast<unsigned>(m_fields.m_syntheticBold) << 5 | // bit 6 | 221 static_cast<unsigned>(m_fields.m_syntheticBold) << 5 | // bit 6 |
222 static_cast<unsigned>(m_fields.m_textRendering) << 3 | // bits 4-5 | 222 static_cast<unsigned>(m_fields.m_textRendering) << 3 | // bits 4-5 |
223 static_cast<unsigned>(m_fields.m_orientation) << 1 | // bit 2-3 | 223 static_cast<unsigned>(m_fields.m_orientation) << 1 | // bit 2-3 |
224 static_cast<unsigned>(m_fields.m_subpixelTextPosition); // bit 1 | 224 static_cast<unsigned>(m_fields.m_subpixelTextPosition); // bit 1 |
225 | 225 |
226 return FontCacheKey(creationParams, effectiveFontSize(), | 226 return FontCacheKey(creationParams, effectiveFontSize(), |
227 options | fontTraits.bitfield() << 8); | 227 options | fontTraits.bitfield() << 8, |
| 228 m_variationSettings); |
228 } | 229 } |
229 | 230 |
230 void FontDescription::setDefaultTypesettingFeatures( | 231 void FontDescription::setDefaultTypesettingFeatures( |
231 TypesettingFeatures typesettingFeatures) { | 232 TypesettingFeatures typesettingFeatures) { |
232 s_defaultTypesettingFeatures = typesettingFeatures; | 233 s_defaultTypesettingFeatures = typesettingFeatures; |
233 } | 234 } |
234 | 235 |
235 TypesettingFeatures FontDescription::defaultTypesettingFeatures() { | 236 TypesettingFeatures FontDescription::defaultTypesettingFeatures() { |
236 return s_defaultTypesettingFeatures; | 237 return s_defaultTypesettingFeatures; |
237 } | 238 } |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
304 const FontFeatureSettings* settings = featureSettings(); | 305 const FontFeatureSettings* settings = featureSettings(); |
305 if (settings) { | 306 if (settings) { |
306 unsigned numFeatures = settings->size(); | 307 unsigned numFeatures = settings->size(); |
307 for (unsigned i = 0; i < numFeatures; ++i) { | 308 for (unsigned i = 0; i < numFeatures; ++i) { |
308 const AtomicString& tag = settings->at(i).tag(); | 309 const AtomicString& tag = settings->at(i).tag(); |
309 for (unsigned j = 0; j < tag.length(); j++) | 310 for (unsigned j = 0; j < tag.length(); j++) |
310 stringHasher.addCharacter(tag[j]); | 311 stringHasher.addCharacter(tag[j]); |
311 addToHash(hash, settings->at(i).value()); | 312 addToHash(hash, settings->at(i).value()); |
312 } | 313 } |
313 } | 314 } |
314 const FontVariationSettings* varSettings = variationSettings(); | 315 |
315 if (varSettings) { | 316 if (variationSettings()) |
316 unsigned numFeatures = varSettings->size(); | 317 addToHash(hash, variationSettings()->hash()); |
317 for (unsigned i = 0; i < numFeatures; ++i) { | |
318 const AtomicString& tag = varSettings->at(i).tag(); | |
319 for (unsigned j = 0; j < tag.length(); j++) | |
320 stringHasher.addCharacter(tag[j]); | |
321 addToHash(hash, varSettings->at(i).value()); | |
322 } | |
323 } | |
324 | 318 |
325 if (m_locale) { | 319 if (m_locale) { |
326 const AtomicString& locale = m_locale->localeString(); | 320 const AtomicString& locale = m_locale->localeString(); |
327 for (unsigned i = 0; i < locale.length(); i++) | 321 for (unsigned i = 0; i < locale.length(); i++) |
328 stringHasher.addCharacter(locale[i]); | 322 stringHasher.addCharacter(locale[i]); |
329 } | 323 } |
330 addToHash(hash, stringHasher.hash()); | 324 addToHash(hash, stringHasher.hash()); |
331 | 325 |
332 addFloatToHash(hash, m_specifiedSize); | 326 addFloatToHash(hash, m_specifiedSize); |
333 addFloatToHash(hash, m_computedSize); | 327 addFloatToHash(hash, m_computedSize); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
365 "FontStretchUltraCondensed should map to kUltraCondensed_Width"); | 359 "FontStretchUltraCondensed should map to kUltraCondensed_Width"); |
366 static_assert(static_cast<int>(FontStretchNormal) == | 360 static_assert(static_cast<int>(FontStretchNormal) == |
367 static_cast<int>(SkFontStyle::kNormal_Width), | 361 static_cast<int>(SkFontStyle::kNormal_Width), |
368 "FontStretchNormal should map to kNormal_Width"); | 362 "FontStretchNormal should map to kNormal_Width"); |
369 static_assert(static_cast<int>(FontStretchUltraExpanded) == | 363 static_assert(static_cast<int>(FontStretchUltraExpanded) == |
370 static_cast<int>(SkFontStyle::kUltraExpanded_Width), | 364 static_cast<int>(SkFontStyle::kUltraExpanded_Width), |
371 "FontStretchUltraExpanded should map to kUltraExpanded_Width"); | 365 "FontStretchUltraExpanded should map to kUltraExpanded_Width"); |
372 } | 366 } |
373 | 367 |
374 } // namespace blink | 368 } // namespace blink |
OLD | NEW |