1 // Copyright 2021 Google LLC.
2 #include "experimental/sktext/include/Text.h"
3 #include "experimental/sktext/src/Line.h"
4
5 namespace skia {
6 namespace text {
LogicalLine(const Stretch & stretch,const Stretch & spaces,SkScalar verticalOffset,bool hardLineBreak)7 LogicalLine::LogicalLine(const Stretch& stretch, const Stretch& spaces, SkScalar verticalOffset, bool hardLineBreak)
8 : fTextStart(stretch.glyphStart())
9 , fTextEnd(stretch.glyphEnd())
10 , fWhitespacesEnd (spaces.glyphEnd())
11 , fText(stretch.textRange())
12 , fWhitespaces(spaces.textRange())
13 , fTextWidth(stretch.width())
14 , fSpacesWidth(spaces.width())
15 , fHorizontalOffset(0.0f)
16 , fVerticalOffset(verticalOffset)
17 , fHardLineBreak(hardLineBreak) {
18 SkASSERT(stretch.isEmpty() ||
19 spaces.isEmpty() ||
20 (stretch.glyphEnd() == spaces.glyphStart()));
21
22 if (!stretch.isEmpty()) {
23 this->fTextMetrics.merge(stretch.textMetrics());
24 }
25 if (!spaces.isEmpty()) {
26 this->fTextMetrics.merge(spaces.textMetrics());
27 }
28 }
29 } // namespace text
30 } // namespace skia
31