64 {
65 if (fQueueCount) {
67 this->popFront();
68 if (fQueueCount >= 2) {
69 return true;
70 }
73
74 fQueueCount = 0;
75 }
76 }
77 for (; fIter != fEnd; ++fIter) {
78 SkASSERT(fQueueCount == 0 || fQueueCount == 1);
82 if (!this->finishOpenContour()) {
83 continue;
84 }
85 break;
88 [[fallthrough]];
92 [[fallthrough]];
95 fLastDegenerateStrokePt =
pts;
96 continue;
97 }}}
99 if (fQueueCount == 1) {
100
102 fFirstPtsInContour =
pts;
103 fFirstWInContour =
w;
104 continue;
105 }
106 break;
108 if (!fQueueCount) {
109 fLastDegenerateStrokePt =
pts;
110 continue;
111 }
112 if (
pts[0] != fFirstPtsInContour[0]) {
113
114 fClosePts = {
pts[0], fFirstPtsInContour[0]};
115 this->enqueue(
Verb::kLine, fClosePts.data(),
nullptr);
116 }
117
118 this->enqueue(fFirstVerbInContour, fFirstPtsInContour, fFirstWInContour);
120 fLastDegenerateStrokePt = nullptr;
121 break;
122 }
124 ++fIter;
125 return true;
126 }
127 return this->finishOpenContour();
128 }
@ kClose
SkPath::RawIter returns 0 points.
@ kMove
SkPath::RawIter returns 1 point.
const SkPoint * pts() const