Lines Matching refs:clusters
36 std::vector<uint32_t>& clusters) { in is_one_to_one() argument
40 if (clusters[clusterIndex] >= lastUtf8Index) { in is_one_to_one()
43 size_t utf8ClusterSize = lastUtf8Index - clusters[clusterIndex]; in is_one_to_one()
44 if (SkUTF::CountUTF8(&utf8[clusters[clusterIndex]], utf8ClusterSize) != 1) { in is_one_to_one()
47 lastUtf8Index = clusters[clusterIndex]; in is_one_to_one()
51 if (clusters.front() <= clusters.back()) { in is_one_to_one()
53 size_t clusterCursor = clusters.size(); in is_one_to_one()
60 while (clusterCursor < clusters.size()) { in is_one_to_one()
131 SkSpan<const uint32_t> clusters, in BreakupClusters() argument
134 if (clusters.front() <= clusters.back()) { in BreakupClusters()
137 for (size_t glyphEndIndex = 0; glyphEndIndex < clusters.size(); glyphEndIndex++) { in BreakupClusters()
139 if (clusters[glyphStartIndex] == clusters[glyphEndIndex]) { continue; } in BreakupClusters()
142 clusters[glyphStartIndex], clusters[glyphEndIndex]); in BreakupClusters()
147 processMToN(glyphStartIndex, clusters.size(), clusters[glyphStartIndex], utf8End); in BreakupClusters()
151 SkASSERT(clusters.size() >= 2); in BreakupClusters()
154 for (size_t glyphEndIndex = 0; glyphEndIndex < clusters.size(); glyphEndIndex++) { in BreakupClusters()
156 if (clusters[glyphStartIndex] == clusters[glyphEndIndex]) { continue; } in BreakupClusters()
159 clusters[glyphStartIndex], utf8EndIndex); in BreakupClusters()
161 utf8EndIndex = clusters[glyphStartIndex]; in BreakupClusters()
164 processMToN(glyphStartIndex, clusters.size(), utf8Begin, clusters[glyphStartIndex-1]); in BreakupClusters()
170 SkSpan<const uint32_t> clusters, in VisualizeClusters() argument
217 BreakupClusters(utf8Begin, utf8End, clusters, gatherRuns); in VisualizeClusters()