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