 Chromium Code Reviews
 Chromium Code Reviews Issue 152073003:
  Adding code to calculate Underline Thickness from Font Metrics, this will be useful when Skia is us…  (Closed) 
  Base URL: https://skia.googlesource.com/skia.git@master
    
  
    Issue 152073003:
  Adding code to calculate Underline Thickness from Font Metrics, this will be useful when Skia is us…  (Closed) 
  Base URL: https://skia.googlesource.com/skia.git@master| OLD | NEW | 
|---|---|
| 1 | 1 | 
| 2 | 2 | 
| 3 /* | 3 /* | 
| 4 * Copyright 2006 The Android Open Source Project | 4 * Copyright 2006 The Android Open Source Project | 
| 5 * | 5 * | 
| 6 * Use of this source code is governed by a BSD-style license that can be | 6 * Use of this source code is governed by a BSD-style license that can be | 
| 7 * found in the LICENSE file. | 7 * found in the LICENSE file. | 
| 8 */ | 8 */ | 
| 9 | 9 | 
| 10 | 10 | 
| (...skipping 713 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 724 kUTF16_TextEncoding, //!< the text parameters are UTF16 | 724 kUTF16_TextEncoding, //!< the text parameters are UTF16 | 
| 725 kUTF32_TextEncoding, //!< the text parameters are UTF32 | 725 kUTF32_TextEncoding, //!< the text parameters are UTF32 | 
| 726 kGlyphID_TextEncoding //!< the text parameters are glyph indices | 726 kGlyphID_TextEncoding //!< the text parameters are glyph indices | 
| 727 }; | 727 }; | 
| 728 | 728 | 
| 729 TextEncoding getTextEncoding() const { return (TextEncoding)fTextEncoding; } | 729 TextEncoding getTextEncoding() const { return (TextEncoding)fTextEncoding; } | 
| 730 | 730 | 
| 731 void setTextEncoding(TextEncoding encoding); | 731 void setTextEncoding(TextEncoding encoding); | 
| 732 | 732 | 
| 733 struct FontMetrics { | 733 struct FontMetrics { | 
| 734 /** Flags which indicate the confidence level of various metrics. | |
| 735 A set flag indicates that the metric may be trusted. | |
| 736 */ | |
| 737 enum FontMetricsFlags { | |
| 
bungeman-skia
2014/02/20 16:52:46
Since this is in FontMetrics (already namespaced)
 | |
| 738 kUnderlineThinknessIsValid_FontMetricFlag = 0x01, | |
| 739 kUnderlinePositionIsValid_FontMetricsflag = 1 << 1, | |
| 
bungeman-skia
2014/02/20 16:52:46
kUnderlineThinkness_ValidityFlag
kUnderlinePositio
 | |
| 740 }; | |
| 741 | |
| 742 uint32_t fFontMetricsFlag; //!< Bit field to identify which val ues are unknown | |
| 
bungeman-skia
2014/02/20 16:52:46
fValidityFlags
 | |
| 734 SkScalar fTop; //!< The greatest distance above the baseline fo r any glyph (will be <= 0) | 743 SkScalar fTop; //!< The greatest distance above the baseline fo r any glyph (will be <= 0) | 
| 735 SkScalar fAscent; //!< The recommended distance above the baseline (will be <= 0) | 744 SkScalar fAscent; //!< The recommended distance above the baseline (will be <= 0) | 
| 736 SkScalar fDescent; //!< The recommended distance below the baseline (will be >= 0) | 745 SkScalar fDescent; //!< The recommended distance below the baseline (will be >= 0) | 
| 737 SkScalar fBottom; //!< The greatest distance below the baseline fo r any glyph (will be >= 0) | 746 SkScalar fBottom; //!< The greatest distance below the baseline fo r any glyph (will be >= 0) | 
| 738 SkScalar fLeading; //!< The recommended distance to add between lin es of text (will be >= 0) | 747 SkScalar fLeading; //!< The recommended distance to add between lin es of text (will be >= 0) | 
| 739 SkScalar fAvgCharWidth; //!< the average charactor width (>= 0) | 748 SkScalar fAvgCharWidth; //!< the average character width (>= 0) | 
| 740 SkScalar fMaxCharWidth; //!< the max charactor width (>= 0) | 749 SkScalar fMaxCharWidth; //!< the max character width (>= 0) | 
| 741 SkScalar fXMin; //!< The minimum bounding box x value for all gl yphs | 750 SkScalar fXMin; //!< The minimum bounding box x value for all gl yphs | 
| 742 SkScalar fXMax; //!< The maximum bounding box x value for all gl yphs | 751 SkScalar fXMax; //!< The maximum bounding box x value for all gl yphs | 
| 743 SkScalar fXHeight; //!< The height of an 'x' in px, or 0 if no 'x' in face | 752 SkScalar fXHeight; //!< The height of an 'x' in px, or 0 if no 'x' in face | 
| 744 SkScalar fCapHeight; //!< The cap height (> 0), or 0 if cannot be de termined. | 753 SkScalar fCapHeight; //!< The cap height (> 0), or 0 if cannot be de termined. | 
| 754 SkScalar fUnderlineThickness; //!< underline thickness, or 0 if canno t be determined | |
| 755 SkScalar fUnderlinePosition; //!< underline position, or 0 if cannot be determined | |
| 756 | |
| 757 /** Method to get bit set for Font Metrics | |
| 758 @param bitSet bit whose value we want to know is set or not | |
| 759 */ | |
| 760 void setFontMetricsFlag(FontMetrics::FontMetricsFlags bitSet); | |
| 
bungeman-skia
2014/02/20 16:52:46
validate(uint32_t flags) or validate(ValidityFlags
 | |
| 761 | |
| 762 /** Method to get bit set for Font Metrics | |
| 763 @param bitSet bit whose value we want to know is set or not | |
| 764 */ | |
| 765 void unsetFontMetricsFlag(FontMetrics::FontMetricsFlags bitSet); | |
| 
bungeman-skia
2014/02/20 16:52:46
invalidate(uint32_t flags) or invalidate(ValidityF
 | |
| 766 | |
| 767 /** Method to get bit set for Font Metrics | |
| 768 @param bitSet bit whose value we want to know is set or not | |
| 769 @param return true if FontMetrics bit i set false otherwise | |
| 770 */ | |
| 771 bool checkFontMetricsFlag(FontMetrics::FontMetricsFlags bitSet) const; | |
| 
bungeman-skia
2014/02/20 16:52:46
isValid(uint32_t flags) or isValid(ValidityFlags f
 | |
| 772 | |
| 745 }; | 773 }; | 
| 746 | 774 | 
| 747 /** Return the recommend spacing between lines (which will be | 775 /** Return the recommend spacing between lines (which will be | 
| 748 fDescent - fAscent + fLeading). | 776 fDescent - fAscent + fLeading). | 
| 749 If metrics is not null, return in it the font metrics for the | 777 If metrics is not null, return in it the font metrics for the | 
| 750 typeface/pointsize/etc. currently set in the paint. | 778 typeface/pointsize/etc. currently set in the paint. | 
| 751 @param metrics If not null, returns the font metrics for the | 779 @param metrics If not null, returns the font metrics for the | 
| 752 current typeface/pointsize/etc setting in this | 780 current typeface/pointsize/etc setting in this | 
| 753 paint. | 781 paint. | 
| 754 @param scale If not 0, return width as if the canvas were scaled | 782 @param scale If not 0, return width as if the canvas were scaled | 
| (...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1079 #ifdef SK_BUILD_FOR_ANDROID | 1107 #ifdef SK_BUILD_FOR_ANDROID | 
| 1080 SkPaintOptionsAndroid fPaintOptionsAndroid; | 1108 SkPaintOptionsAndroid fPaintOptionsAndroid; | 
| 1081 | 1109 | 
| 1082 // In order for the == operator to work properly this must be the last field | 1110 // In order for the == operator to work properly this must be the last field | 
| 1083 // in the struct so that we can do a memcmp to this field's offset. | 1111 // in the struct so that we can do a memcmp to this field's offset. | 
| 1084 uint32_t fGenerationID; | 1112 uint32_t fGenerationID; | 
| 1085 #endif | 1113 #endif | 
| 1086 }; | 1114 }; | 
| 1087 | 1115 | 
| 1088 #endif | 1116 #endif | 
| OLD | NEW |