Lines Matching refs:bidi
25 SkBidiIterator_icu(SkUnicodeBidi bidi) : fBidi(std::move(bidi)) {}
40 SkUnicodeBidi bidi(SkUnicode_IcuBidi::bidi_openSized(utf16Units, 0, &status));
45 SkASSERT(bidi);
49 SkUnicode_IcuBidi::bidi_setPara(bidi.get(), (const UChar*)utf16, utf16Units, bidiLevel, nullptr, &status);
54 return std::unique_ptr<SkBidiIterator>(new SkBidiIterator_icu(std::move(bidi)));
89 // Convert to UTF16 since for now bidi iterator only operates on utf16
92 // Create bidi iterator
94 SkUnicodeBidi bidi(SkUnicode_IcuBidi::bidi_openSized(utf16.size(), 0, &status));
99 SkASSERT(bidi);
103 SkUnicode_IcuBidi::bidi_setPara(bidi.get(), (const UChar*)utf16.c_str(), utf16.size(), bidiLevel, nullptr,
110 // Iterate through bidi regions and the result positions into utf8
117 Position end16 = SkUnicode_IcuBidi::bidi_getLength(bidi.get());
122 if (SkUnicode_IcuBidi::bidi_getDirection(bidi.get()) != UBIDI_MIXED) {
124 bidiRegions->emplace_back(0, utf8Units, SkUnicode_IcuBidi::bidi_getLevelAt(bidi.get(), 0));
129 auto level = SkUnicode_IcuBidi::bidi_getLevelAt(bidi.get(), pos16);