23 int parts = 1 << (31 - leadingZero);
24 int partIndex =
fSubset - parts;
28 *
end =
count * (partIndex + 1) / parts;
69 bool foundCurve =
false;
90 contourCount += foundCurve;
91 for (
int index = 0; index < contourCount; ++index) {
103 int contourCount = 0;
105 bool addMoveTo =
true;
107 if (enabled && addMoveTo) {
121 result.quadTo(pts[1], pts[2]);
126 result.conicTo(pts[1], pts[2], *
w);
131 result.cubicTo(pts[1], pts[2], pts[3]);
172 for (
int index = 0; index < verbCount; ++index) {
185 bool addMoveTo =
true;
186 bool addLineTo =
false;
194 }
else if (addLineTo) {
209 result.quadTo(pts[1], pts[2]);
214 result.conicTo(pts[1], pts[2], *
w);
219 result.cubicTo(pts[1], pts[2], pts[3]);
231 addLineTo = !enabled;
#define SkDEBUGFAIL(message)
void SK_SPI SkDebugf(const char format[],...) SK_PRINTF_LIKE(1
static int SkCLZ(uint32_t mask)
@ kClose
SkPath::RawIter returns 0 points.
@ kCubic
SkPath::RawIter returns 4 points.
@ kConic
SkPath::RawIter returns 3 points + 1 weight.
@ kQuad
SkPath::RawIter returns 3 points.
@ kMove
SkPath::RawIter returns 1 point.
@ kLine
SkPath::RawIter returns 2 points.
SkPathFillType getFillType() const
void setFillType(SkPathFillType ft)
SkPath getSubsetPath() const override
SubsetContours(const SkPath &path)
SubsetPath(const SkPath &path)
SkTDArray< bool > fSelected
int range(int *end) const
bool subset(bool testFailed, SkPath *sub)
virtual SkPath getSubsetPath() const =0
SubsetVerbs(const SkPath &path)
SkPath getSubsetPath() const override