OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 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 28 matching lines...) Expand all Loading... |
39 #include "wtf/OwnPtr.h" | 39 #include "wtf/OwnPtr.h" |
40 #include "wtf/PassOwnPtr.h" | 40 #include "wtf/PassOwnPtr.h" |
41 #include "wtf/Vector.h" | 41 #include "wtf/Vector.h" |
42 #include "wtf/unicode/CharacterNames.h" | 42 #include "wtf/unicode/CharacterNames.h" |
43 | 43 |
44 #include <unicode/uscript.h> | 44 #include <unicode/uscript.h> |
45 | 45 |
46 namespace blink { | 46 namespace blink { |
47 | 47 |
48 class Font; | 48 class Font; |
49 class GlyphBufferWithOffsets; | 49 class GlyphBuffer; |
50 class SimpleFontData; | 50 class SimpleFontData; |
51 | 51 |
52 class HarfBuzzShaper final { | 52 class HarfBuzzShaper final { |
53 public: | 53 public: |
54 enum ForTextEmphasisOrNot { | 54 enum ForTextEmphasisOrNot { |
55 NotForTextEmphasis, | 55 NotForTextEmphasis, |
56 ForTextEmphasis | 56 ForTextEmphasis |
57 }; | 57 }; |
58 | 58 |
59 HarfBuzzShaper(const Font*, const TextRun&, ForTextEmphasisOrNot = NotForTex
tEmphasis, HashSet<const SimpleFontData*>* fallbackFonts = 0); | 59 HarfBuzzShaper(const Font*, const TextRun&, ForTextEmphasisOrNot = NotForTex
tEmphasis, HashSet<const SimpleFontData*>* fallbackFonts = 0); |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
122 int determineWordBreakSpacing(); | 122 int determineWordBreakSpacing(); |
123 // setPadding sets a number of pixels to be distributed across the TextRun. | 123 // setPadding sets a number of pixels to be distributed across the TextRun. |
124 // WebKit uses this to justify text. | 124 // WebKit uses this to justify text. |
125 void setPadding(int); | 125 void setPadding(int); |
126 | 126 |
127 void setFontFeatures(); | 127 void setFontFeatures(); |
128 | 128 |
129 bool createHarfBuzzRuns(); | 129 bool createHarfBuzzRuns(); |
130 bool shapeHarfBuzzRuns(); | 130 bool shapeHarfBuzzRuns(); |
131 bool fillGlyphBuffer(GlyphBuffer*); | 131 bool fillGlyphBuffer(GlyphBuffer*); |
132 void fillGlyphBufferFromHarfBuzzRun(GlyphBufferWithOffsets*, HarfBuzzRun*, f
loat& carryAdvance); | 132 void fillGlyphBufferFromHarfBuzzRun(GlyphBuffer*, HarfBuzzRun*, float& carry
Advance); |
133 void fillGlyphBufferForTextEmphasis(GlyphBuffer*, HarfBuzzRun* currentRun); | 133 void fillGlyphBufferForTextEmphasis(GlyphBuffer*, HarfBuzzRun* currentRun); |
134 void setGlyphPositionsForHarfBuzzRun(HarfBuzzRun*, hb_buffer_t*); | 134 void setGlyphPositionsForHarfBuzzRun(HarfBuzzRun*, hb_buffer_t*); |
135 void addHarfBuzzRun(unsigned startCharacter, unsigned endCharacter, const Si
mpleFontData*, UScriptCode); | 135 void addHarfBuzzRun(unsigned startCharacter, unsigned endCharacter, const Si
mpleFontData*, UScriptCode); |
136 | 136 |
137 const Font* m_font; | 137 const Font* m_font; |
138 OwnPtr<UChar[]> m_normalizedBuffer; | 138 OwnPtr<UChar[]> m_normalizedBuffer; |
139 unsigned m_normalizedBufferLength; | 139 unsigned m_normalizedBufferLength; |
140 const TextRun& m_run; | 140 const TextRun& m_run; |
141 | 141 |
142 float m_wordSpacingAdjustment; // Delta adjustment (pixels) for each word br
eak. | 142 float m_wordSpacingAdjustment; // Delta adjustment (pixels) for each word br
eak. |
(...skipping 13 matching lines...) Expand all Loading... |
156 float m_totalWidth; | 156 float m_totalWidth; |
157 FloatBoxExtent m_glyphBoundingBox; | 157 FloatBoxExtent m_glyphBoundingBox; |
158 HashSet<const SimpleFontData*>* m_fallbackFonts; | 158 HashSet<const SimpleFontData*>* m_fallbackFonts; |
159 | 159 |
160 friend struct CachedShapingResults; | 160 friend struct CachedShapingResults; |
161 }; | 161 }; |
162 | 162 |
163 } // namespace blink | 163 } // namespace blink |
164 | 164 |
165 #endif // HarfBuzzShaper_h | 165 #endif // HarfBuzzShaper_h |
OLD | NEW |