Lines Matching defs:utf8
71 std::vector<SkUnichar> ParagraphImpl::convertUtf8ToUnicode(const SkString& utf8)
75 auto p = utf8.c_str();
76 auto end = p + utf8.size();
1538 auto utf8 = fUTF8IndexForUTF16Index[start];
1540 if (start > 0 && fUTF8IndexForUTF16Index[start - 1] == utf8) {
1541 utf8 = fUTF8IndexForUTF16Index[start + 1];
1543 text.start = this->findNextGraphemeBoundary(utf8);
1546 auto utf8 = this->findPreviousGraphemeBoundary(fUTF8IndexForUTF16Index[end]);
1547 text.end = utf8;
1937 TextIndex ParagraphImpl::findPreviousGraphemeBoundary(TextIndex utf8) const {
1938 while (utf8 > 0 &&
1939 (fCodeUnitProperties[utf8] & SkUnicode::CodeUnitFlags::kGraphemeStart) == 0) {
1940 --utf8;
1942 return utf8;
1945 TextIndex ParagraphImpl::findNextGraphemeBoundary(TextIndex utf8) const {
1946 while (utf8 < fText.size() &&
1947 (fCodeUnitProperties[utf8] & SkUnicode::CodeUnitFlags::kGraphemeStart) == 0) {
1948 ++utf8;
1950 return utf8;
1953 TextIndex ParagraphImpl::findNextGlyphClusterBoundary(TextIndex utf8) const {
1954 while (utf8 < fText.size() &&
1955 (fCodeUnitProperties[utf8] & SkUnicode::CodeUnitFlags::kGlyphClusterStart) == 0) {
1956 ++utf8;
1958 return utf8;
1961 TextIndex ParagraphImpl::findPreviousGlyphClusterBoundary(TextIndex utf8) const {
1962 while (utf8 > 0 &&
1963 (fCodeUnitProperties[utf8] & SkUnicode::CodeUnitFlags::kGlyphClusterStart) == 0) {
1964 --utf8;
1966 return utf8;