Lines Matching defs:line
711 void emit(SkUnicode* unicode, const ShapedLine& line, SkShaper::RunHandler* handler) {
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];
804 SkUnicodeBreak line,
1055 ShapedLine line;
1131 SkScalar widthLeft = width - line.fAdvance.fX;
1170 // If nothing fit (best score is negative) and the line is not empty
1171 if (width < line.fAdvance.fX + best.fAdvance.fX && !line.runs.empty()) {
1172 emit(fUnicode.get(), line, handler);
1173 line.runs.reset();
1174 line.fAdvance = {0, 0};
1187 line.fAdvance += best.fAdvance;
1188 line.runs.emplace_back(std::move(best));
1190 // If item broken, emit line (prevent remainder from accidentally fitting)
1192 emit(fUnicode.get(), line, handler);
1193 line.runs.reset();
1194 line.fAdvance = {0, 0};
1199 emit(fUnicode.get(), line, handler);
1261 // Iterate over the glyphs in logical order to find potential line lengths.
1263 /** The position of the beginning of the line. */
1266 /** The position of the candidate line break. */
1278 // 'Break' at graphemes until a line boundary, then only at line boundaries.
1279 // Only break at graphemes if no line boundary is valid.
1282 // TODO: preserve line breaks <= grapheme breaks
1283 // and prevent line breaks inside graphemes
1332 // Reorder the runs and glyphs per line and write them out.
1366 // until a visible glyph is found and force them to the end of the visual line.