Index: third_party/WebKit/Source/platform/fonts/shaping/HarfBuzzShaper.h |
diff --git a/third_party/WebKit/Source/platform/fonts/shaping/HarfBuzzShaper.h b/third_party/WebKit/Source/platform/fonts/shaping/HarfBuzzShaper.h |
index 80910ae45b1b08378fca67f8dc53afa570281715..08c323534453050d56d5a14b4d3fe41fac889f52 100644 |
--- a/third_party/WebKit/Source/platform/fonts/shaping/HarfBuzzShaper.h |
+++ b/third_party/WebKit/Source/platform/fonts/shaping/HarfBuzzShaper.h |
@@ -46,88 +46,6 @@ class Font; |
class SimpleFontData; |
class HarfBuzzShaper; |
-// Shaping text runs is split into several stages: Run segmentation, shaping the |
-// initial segment, identify shaped and non-shaped sequences of the shaping |
-// result, and processing sub-runs by trying to shape them with a fallback font |
-// until the last resort font is reached. |
-// |
-// If caps formatting is requested, an additional lowercase/uppercase |
-// segmentation stage is required. In this stage, OpenType features in the font |
-// are matched against the requested formatting and formatting is synthesized as |
-// required by the CSS Level 3 Fonts Module. |
-// |
-// Going through one example - for simplicity without caps formatting - to |
-// illustrate the process: The following is a run of vertical text to be |
-// shaped. After run segmentation in RunSegmenter it is split into 4 |
-// segments. The segments indicated by the segementation results showing the |
-// script, orientation information and small caps handling of the individual |
-// segment. The Japanese text at the beginning has script "Hiragana", does not |
-// need rotation when laid out vertically and does not need uppercasing when |
-// small caps is requested. |
-// |
-// 0 い |
-// 1 ろ |
-// 2 は USCRIPT_HIRAGANA, |
-// OrientationIterator::OrientationKeep, |
-// SmallCapsIterator::SmallCapsSameCase |
-// |
-// 3 a |
-// 4 ̄ (Combining Macron) |
-// 5 a |
-// 6 A USCRIPT_LATIN, |
-// OrientationIterator::OrientationRotateSideways, |
-// SmallCapsIterator::SmallCapsUppercaseNeeded |
-// |
-// 7 い |
-// 8 ろ |
-// 9 は USCRIPT_HIRAGANA, |
-// OrientationIterator::OrientationKeep, |
-// SmallCapsIterator::SmallCapsSameCase |
-// |
-// |
-// Let's assume the CSS for this text run is as follows: |
-// font-family: "Heiti SC", Tinos, sans-serif; |
-// where Tinos is a web font, defined as a composite font, with two sub ranges, |
-// one for Latin U+00-U+FF and one unrestricted unicode-range. |
-// |
-// FontFallbackIterator provides the shaper with Heiti SC, then Tinos of the |
-// restricted unicode-range, then the unrestricted full unicode-range Tinos, |
-// then a system sans-serif. |
-// |
-// The initial segment 0-2 to the shaper, together with the segmentation |
-// properties and the initial Heiti SC font. Characters 0-2 are shaped |
-// successfully with Heiti SC. The next segment, 3-5 is passed to the shaper. |
-// The shaper attempts to shape it with Heiti SC, which fails for the Combining |
-// Macron. So the shaping result for this segment would look similar to this. |
-// |
-// Glyphpos: 0 1 2 3 |
-// Cluster: 0 0 2 3 |
-// Glyph: a x a A (where x is .notdef) |
-// |
-// Now in the extractShapeResults() step we notice that there is more work to |
-// do, since Heiti SC does not have a glyph for the Combining Macron combined |
-// with an a. So, this cluster together with a Todo item for switching to the |
-// next font is put into HolesQueue. |
-// |
-// After shaping the initial segment, the remaining items in the HolesQueue are |
-// processed, picking them from the head of the queue. So, first, the next font |
-// is requested from the FontFallbackIterator. In this case, Tinos (for the |
-// range U+00-U+FF) comes back. Shaping using this font, assuming it is |
-// subsetted, fails again since there is no combining mark available. This |
-// triggers requesting yet another font. This time, the Tinos font for the full |
-// range. With this, shaping succeeds with the following HarfBuzz result: |
-// |
-// Glyphpos 0 1 2 3 |
-// Cluster: 0 0 2 3 |
-// Glyph: a ̄ a A (with glyph coordinates placing the ̄ above the first a) |
-// |
-// Now this sub run is successfully processed and can be appended to |
-// ShapeResult. A new ShapeResult::RunInfo is created. The logic in |
-// insertRunIntoShapeResult then takes care of merging the shape result into |
-// the right position the vector of RunInfos in ShapeResult. |
-// |
-// Shaping then continues analogously for the remaining Hiragana Japanese |
-// sub-run, and the result is inserted into ShapeResult as well. |
class PLATFORM_EXPORT HarfBuzzShaper final { |
public: |
HarfBuzzShaper(const UChar*, unsigned length, TextDirection); |