Bidi segmentation BEFORE anything else

Change-Id: I94637e663bc1ffc7d9d6e1c0fb0b28509af45f60
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/266200
Commit-Queue: Julia Lavrova <jlavrova@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
diff --git a/modules/skparagraph/src/ParagraphImpl.h b/modules/skparagraph/src/ParagraphImpl.h
index 374a00b..fd39e10 100644
--- a/modules/skparagraph/src/ParagraphImpl.h
+++ b/modules/skparagraph/src/ParagraphImpl.h
@@ -49,6 +49,13 @@
     TextIndex fTextStart;
 };
 
+struct BidiRegion {
+    BidiRegion(size_t start, size_t end, uint8_t dir)
+        : text(start, end), direction(dir) { }
+    TextRange text;
+    uint8_t direction;
+};
+
 class TextBreaker {
 public:
     TextBreaker() : fInitialized(false), fPos(-1) {}
@@ -218,6 +225,8 @@
 
     void computeEmptyMetrics();
 
+    bool calculateBidiRegions(SkTArray<BidiRegion>* regions);
+
     // Input
     SkTArray<StyleBlock<SkScalar>> fLetterSpaceStyles;
     SkTArray<StyleBlock<SkScalar>> fWordSpaceStyles;