Lines Matching defs:cluster

356     auto targetCluster = cluster(clusterIndex(textIndex));
523 // Most common case: one line of text (and one line is never justified, so no cluster shifts)
925 // In some cases we apply spacing to glyphs first and then build the cluster table, in some we do
956 run.iterateThroughClusters([this, &run, &shift, &style](Cluster* cluster) {
957 run.shift(cluster, shift);
958 shift += run.addSpacesEvenly(style.getLetterSpacing(), cluster);
978 run.iterateThroughClusters([this, &run, &shift, &soFarWhitespacesOnly, &wordSpacingPending, &lastSpaceCluster](Cluster* cluster) {
979 // Shift the cluster (shift collected from the previous clusters)
980 run.shift(cluster, shift);
982 // Synchronize styles (one cluster can be covered by few styles)
984 while (!cluster->startsIn(currentStyle->fRange)) {
993 if (cluster->isWhitespaceBreak() && cluster->isSoftBreak()) {
995 lastSpaceCluster = cluster;
1001 run.shift(cluster, spacing);
1008 shift += run.addSpacesEvenly(currentStyle->fStyle.getLetterSpacing(), cluster);
1011 if (soFarWhitespacesOnly && !cluster->isWhitespaceBreak()) {
1059 // Add info to cluster indexes table (text -> cluster)
1063 // There are no glyphs but we want to have one cluster
1076 // Add info to cluster indexes table (text -> cluster)
1167 auto& cluster = fClusters[trailingSpaces];
1168 if (!cluster.isWhitespaceBreak()) {
1172 advance.fX -= cluster.width();
1272 auto& cluster = fClusters[trailingSpaces];
1273 if (!cluster.isWhitespaceBreak()) {
1277 advance.fX -= cluster.width();
1600 // TODO: Optimize (save cluster <-> codepoint connection)
1676 Cluster& ParagraphImpl::cluster(ClusterIndex clusterIndex) {
1682 auto start = cluster(clusterIndex);
2058 auto& cluster = fClusters[c];
2059 if (cluster.contains(codeUnitIndex)) {
2061 line.getRectsForRange(cluster.textRange(),
2067 *glyphInfo = {boxes[0].rect, cluster.textRange(), boxes[0].direction};
2362 for (auto& cluster : paragraph->fClusters) {
2363 cluster.setOwner(paragraph.get());