Lines Matching defs:runs
674 SkTArray<ShapedRun> runs;
712 // Reorder the runs and glyphs per line and write them out.
715 int numRuns = line.runs.size();
718 runLevels[i] = line.runs[i].fLevel;
726 const auto& run = line.runs[logicalIndex];
740 const auto& run = line.runs[logicalIndex];
773 const SkTArray<ShapedRun>& runs = *fRuns;
774 SkASSERT(fRunIndex < runs.size());
775 SkASSERT(fGlyphIndex < runs[fRunIndex].fNumGlyphs);
778 if (fGlyphIndex == runs[fRunIndex].fNumGlyphs) {
781 if (fRunIndex >= runs.size()) {
785 return &runs[fRunIndex].fGlyphs[fGlyphIndex];
789 const SkTArray<ShapedRun>& runs = *fRuns;
790 if (fRunIndex >= runs.size()) {
793 return &runs[fRunIndex].fGlyphs[fGlyphIndex];
1171 if (width < line.fAdvance.fX + best.fAdvance.fX && !line.runs.empty()) {
1173 line.runs.reset();
1188 line.runs.emplace_back(std::move(best));
1193 line.runs.reset();
1212 SkTArray<ShapedRun> runs;
1229 runs.emplace_back(shape(utf8, utf8Bytes,
1233 ShapedRun& run = runs.back();
1264 ShapedRunGlyphIterator beginning(runs);
1267 ShapedRunGlyphIterator candidateLineBreak(runs);
1271 ShapedRunGlyphIterator candidateGraphemeBreak(runs);
1275 ShapedRunGlyphIterator current(runs);
1332 // Reorder the runs and glyphs per line and write them out.
1334 ShapedRunGlyphIterator previousBreak(runs);
1335 ShapedRunGlyphIterator glyphIterator(runs);
1344 runs[current.fRunIndex].fFont.getMetrics(&metrics);
1347 runs[current.fRunIndex].fFont.GetMetrics(&metrics);
1360 runLevels[i] = runs[previousBreak.fRunIndex + i].fLevel;
1365 // step through the runs in reverse visual order and the glyphs in reverse logical order
1371 auto makeSubRun = [&runs, &previousBreak, ¤t, &logicalFromVisual](size_t visualIndex){
1373 const auto& run = runs[logicalIndex];
1430 SkTArray<ShapedRun> runs;
1438 runs.emplace_back(shape(utf8, utf8Bytes,
1445 for (const auto& run : runs) {
1456 for (const auto& run : runs) {