40 {
44
45 if (startT == stopT) {
46 if (!
dst->isEmpty()) {
47
48
52 }
53 return;
54 }
55
57
58 switch (segType) {
62 } else {
65 }
66 break;
68 if (0 == startT) {
70 dst->quadTo(pts[1], pts[2]);
71 } else {
73 dst->quadTo(tmp0[1], tmp0[2]);
74 }
75 } else {
78 dst->quadTo(tmp0[3], tmp0[4]);
79 } else {
80 SkChopQuadAt(&tmp0[2], tmp1, (stopT - startT) / (1 - startT));
81 dst->quadTo(tmp1[1], tmp1[2]);
82 }
83 }
84 break;
87
88 if (0 == startT) {
91 } else {
93 if (
conic.chopAt(stopT, tmp)) {
94 dst->conicTo(tmp[0].
fPts[1], tmp[0].
fPts[2], tmp[0].fW);
95 }
96 }
97 } else {
100 if (
conic.chopAt(startT, tmp)) {
101 dst->conicTo(tmp[1].
fPts[1], tmp[1].
fPts[2], tmp[1].fW);
102 }
103 } else {
105 conic.chopAt(startT, stopT, &tmp);
107 }
108 }
109 } break;
111 if (0 == startT) {
113 dst->cubicTo(pts[1], pts[2], pts[3]);
114 } else {
116 dst->cubicTo(tmp0[1], tmp0[2], tmp0[3]);
117 }
118 } else {
121 dst->cubicTo(tmp0[4], tmp0[5], tmp0[6]);
122 } else {
123 SkChopCubicAt(&tmp0[3], tmp1, (stopT - startT) / (1 - startT));
124 dst->cubicTo(tmp1[1], tmp1[2], tmp1[3]);
125 }
126 }
127 break;
128 default:
130 }
131}
SkAssertResult(font.textToGlyphs("Hello", 5, SkTextEncoding::kUTF8, glyphs, std::size(glyphs))==count)
#define SK_ABORT(message,...)
void SkChopQuadAt(const SkPoint src[3], SkPoint dst[5], SkScalar t)
void SkChopCubicAt(const SkPoint src[4], SkPoint dst[7], SkScalar t)