Lines Matching refs:clusters
43 std::vector<uint32_t>& clusters) {
47 if (clusters[clusterIndex] >= lastUtf8Index) {
50 size_t utf8ClusterSize = lastUtf8Index - clusters[clusterIndex];
51 if (SkUTF::CountUTF8(&utf8[clusters[clusterIndex]], utf8ClusterSize) != 1) {
54 lastUtf8Index = clusters[clusterIndex];
58 if (clusters.front() <= clusters.back()) {
59 // left-to-right clusters
60 size_t clusterCursor = clusters.size();
65 // right-to-left clusters
67 while (clusterCursor < clusters.size()) {
102 fJSONWriter->beginArray("clusters", false);
138 SkSpan<const uint32_t> clusters,
141 if (clusters.front() <= clusters.back()) {
144 for (size_t glyphEndIndex = 0; glyphEndIndex < clusters.size(); glyphEndIndex++) {
146 if (clusters[glyphStartIndex] == clusters[glyphEndIndex]) { continue; }
149 clusters[glyphStartIndex], clusters[glyphEndIndex]);
154 processMToN(glyphStartIndex, clusters.size(), clusters[glyphStartIndex], utf8End);
158 SkASSERT(clusters.size() >= 2);
161 for (size_t glyphEndIndex = 0; glyphEndIndex < clusters.size(); glyphEndIndex++) {
163 if (clusters[glyphStartIndex] == clusters[glyphEndIndex]) { continue; }
166 clusters[glyphStartIndex], utf8EndIndex);
168 utf8EndIndex = clusters[glyphStartIndex];
171 processMToN(glyphStartIndex, clusters.size(), utf8Begin, clusters[glyphStartIndex-1]);
177 SkSpan<const uint32_t> clusters,
224 BreakupClusters(utf8Begin, utf8End, clusters, gatherRuns);