OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org) |
3 * (C) 2000 Antti Koivisto (koivisto@kde.org) | 3 * (C) 2000 Antti Koivisto (koivisto@kde.org) |
4 * (C) 2000 Dirk Mueller (mueller@kde.org) | 4 * (C) 2000 Dirk Mueller (mueller@kde.org) |
5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights | 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights |
6 * reserved. | 6 * reserved. |
7 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com> | 7 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com> |
8 * | 8 * |
9 * This library is free software; you can redistribute it and/or | 9 * This library is free software; you can redistribute it and/or |
10 * modify it under the terms of the GNU Library General Public | 10 * modify it under the terms of the GNU Library General Public |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
107 m_fields.m_historicalLigaturesState = NormalLigaturesState; | 107 m_fields.m_historicalLigaturesState = NormalLigaturesState; |
108 m_fields.m_contextualLigaturesState = NormalLigaturesState; | 108 m_fields.m_contextualLigaturesState = NormalLigaturesState; |
109 m_fields.m_keywordSize = 0; | 109 m_fields.m_keywordSize = 0; |
110 m_fields.m_fontSmoothing = AutoSmoothing; | 110 m_fields.m_fontSmoothing = AutoSmoothing; |
111 m_fields.m_textRendering = AutoTextRendering; | 111 m_fields.m_textRendering = AutoTextRendering; |
112 m_fields.m_syntheticBold = false; | 112 m_fields.m_syntheticBold = false; |
113 m_fields.m_syntheticItalic = false; | 113 m_fields.m_syntheticItalic = false; |
114 m_fields.m_subpixelTextPosition = s_useSubpixelTextPositioning; | 114 m_fields.m_subpixelTextPosition = s_useSubpixelTextPositioning; |
115 m_fields.m_typesettingFeatures = s_defaultTypesettingFeatures; | 115 m_fields.m_typesettingFeatures = s_defaultTypesettingFeatures; |
116 m_fields.m_variantNumeric = FontVariantNumeric().m_fieldsAsUnsigned; | 116 m_fields.m_variantNumeric = FontVariantNumeric().m_fieldsAsUnsigned; |
| 117 m_fields.m_subpixelAscentDescent = false; |
117 } | 118 } |
118 | 119 |
119 bool operator==(const FontDescription&) const; | 120 bool operator==(const FontDescription&) const; |
120 bool operator!=(const FontDescription& other) const { | 121 bool operator!=(const FontDescription& other) const { |
121 return !(*this == other); | 122 return !(*this == other); |
122 } | 123 } |
123 | 124 |
124 struct VariantLigatures { | 125 struct VariantLigatures { |
125 STACK_ALLOCATED(); | 126 STACK_ALLOCATED(); |
126 VariantLigatures(LigaturesState state = NormalLigaturesState) | 127 VariantLigatures(LigaturesState state = NormalLigaturesState) |
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
313 | 314 |
314 TypesettingFeatures getTypesettingFeatures() const { | 315 TypesettingFeatures getTypesettingFeatures() const { |
315 return static_cast<TypesettingFeatures>(m_fields.m_typesettingFeatures); | 316 return static_cast<TypesettingFeatures>(m_fields.m_typesettingFeatures); |
316 } | 317 } |
317 | 318 |
318 static void setSubpixelPositioning(bool b) { | 319 static void setSubpixelPositioning(bool b) { |
319 s_useSubpixelTextPositioning = b; | 320 s_useSubpixelTextPositioning = b; |
320 } | 321 } |
321 static bool subpixelPositioning() { return s_useSubpixelTextPositioning; } | 322 static bool subpixelPositioning() { return s_useSubpixelTextPositioning; } |
322 | 323 |
| 324 void setSubpixelAscentDescent(bool sp) const { |
| 325 m_fields.m_subpixelAscentDescent = sp; |
| 326 } |
| 327 |
| 328 bool subpixelAscentDescent() const { |
| 329 return m_fields.m_subpixelAscentDescent; |
| 330 } |
| 331 |
323 static void setDefaultTypesettingFeatures(TypesettingFeatures); | 332 static void setDefaultTypesettingFeatures(TypesettingFeatures); |
324 static TypesettingFeatures defaultTypesettingFeatures(); | 333 static TypesettingFeatures defaultTypesettingFeatures(); |
325 | 334 |
326 unsigned styleHashWithoutFamilyList() const; | 335 unsigned styleHashWithoutFamilyList() const; |
327 // TODO(drott): We should not expose internal structure here, but rather | 336 // TODO(drott): We should not expose internal structure here, but rather |
328 // introduce a hash function here. | 337 // introduce a hash function here. |
329 unsigned bitmapFields() const { return m_fieldsAsUnsigned.parts[0]; } | 338 unsigned bitmapFields() const { return m_fieldsAsUnsigned.parts[0]; } |
330 unsigned auxiliaryBitmapFields() const { return m_fieldsAsUnsigned.parts[1]; } | 339 unsigned auxiliaryBitmapFields() const { return m_fieldsAsUnsigned.parts[1]; } |
331 | 340 |
332 SkFontStyle skiaFontStyle() const; | 341 SkFontStyle skiaFontStyle() const; |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
384 // values for <font>). | 393 // values for <font>). |
385 unsigned m_keywordSize : 4; | 394 unsigned m_keywordSize : 4; |
386 | 395 |
387 unsigned m_fontSmoothing : 2; // FontSmoothingMode | 396 unsigned m_fontSmoothing : 2; // FontSmoothingMode |
388 unsigned m_textRendering : 2; // TextRenderingMode | 397 unsigned m_textRendering : 2; // TextRenderingMode |
389 unsigned m_syntheticBold : 1; | 398 unsigned m_syntheticBold : 1; |
390 unsigned m_syntheticItalic : 1; | 399 unsigned m_syntheticItalic : 1; |
391 unsigned m_subpixelTextPosition : 1; | 400 unsigned m_subpixelTextPosition : 1; |
392 unsigned m_typesettingFeatures : 3; | 401 unsigned m_typesettingFeatures : 3; |
393 unsigned m_variantNumeric : 8; | 402 unsigned m_variantNumeric : 8; |
| 403 mutable unsigned m_subpixelAscentDescent : 1; |
394 }; | 404 }; |
395 | 405 |
396 static_assert(sizeof(BitFields) == sizeof(FieldsAsUnsignedType), | 406 static_assert(sizeof(BitFields) == sizeof(FieldsAsUnsignedType), |
397 "Mapped bitfield datatypes must have identical size."); | 407 "Mapped bitfield datatypes must have identical size."); |
398 union { | 408 union { |
399 BitFields m_fields; | 409 BitFields m_fields; |
400 FieldsAsUnsignedType m_fieldsAsUnsigned; | 410 FieldsAsUnsignedType m_fieldsAsUnsigned; |
401 }; | 411 }; |
402 | 412 |
403 static TypesettingFeatures s_defaultTypesettingFeatures; | 413 static TypesettingFeatures s_defaultTypesettingFeatures; |
(...skipping 12 matching lines...) Expand all Loading... |
416 m_fieldsAsUnsigned.parts[0] == other.m_fieldsAsUnsigned.parts[0] && | 426 m_fieldsAsUnsigned.parts[0] == other.m_fieldsAsUnsigned.parts[0] && |
417 m_fieldsAsUnsigned.parts[1] == other.m_fieldsAsUnsigned.parts[1] && | 427 m_fieldsAsUnsigned.parts[1] == other.m_fieldsAsUnsigned.parts[1] && |
418 (m_featureSettings == other.m_featureSettings || | 428 (m_featureSettings == other.m_featureSettings || |
419 (m_featureSettings && other.m_featureSettings && | 429 (m_featureSettings && other.m_featureSettings && |
420 *m_featureSettings == *other.m_featureSettings)); | 430 *m_featureSettings == *other.m_featureSettings)); |
421 } | 431 } |
422 | 432 |
423 } // namespace blink | 433 } // namespace blink |
424 | 434 |
425 #endif | 435 #endif |
OLD | NEW |