| 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 |