28 const SkRect* bounds)
const {
38 if (
as_PEB(
this)->onFilterPath(tmpDst, src, rec, bounds, ctm)) {
49 return this->
onAsPoints(results, src, rec, mx, rect);
176 bool filteredFirst =
fPE0->
filterPath(dst, src, rec, cullRect, ctm);
177 bool filteredSecond =
fPE1->
filterPath(dst, src, rec, cullRect, ctm);
178 return filteredFirst || filteredSecond;
static void info(const char *fmt,...) SK_PRINTF_LIKE(1
#define SK_FLATTENABLE_HOOKS(type)
#define SK_REGISTER_FLATTENABLE(type)
static SkPathEffectBase * as_PEB(SkPathEffect *effect)
SkComposePathEffect(sk_sp< SkPathEffect > outer, sk_sp< SkPathEffect > inner)
static sk_sp< SkPathEffect > Make(sk_sp< SkPathEffect > outer, sk_sp< SkPathEffect > inner)
bool computeFastBounds(SkRect *bounds) const override
bool onFilterPath(SkPath *dst, const SkPath &src, SkStrokeRec *rec, const SkRect *cullRect, const SkMatrix &ctm) const override
static sk_sp< SkFlattenable > Deserialize(Type, const void *data, size_t length, const SkDeserialProcs *procs=nullptr)
static const SkMatrix & I()
sk_sp< SkPathEffect > fPE0
sk_sp< SkPathEffect > fPE1
SkPairPathEffect(sk_sp< SkPathEffect > pe0, sk_sp< SkPathEffect > pe1)
void flatten(SkWriteBuffer &buffer) const override
virtual bool onNeedsCTM() const
virtual bool computeFastBounds(SkRect *bounds) const =0
virtual DashType onAsADash(DashInfo *) const
bool asPoints(PointData *results, const SkPath &src, const SkStrokeRec &, const SkMatrix &, const SkRect *cullR) const
static void RegisterFlattenables()
virtual bool onAsPoints(PointData *, const SkPath &, const SkStrokeRec &, const SkMatrix &, const SkRect *) const
static sk_sp< SkPathEffect > MakeCompose(sk_sp< SkPathEffect > outer, sk_sp< SkPathEffect > inner)
static sk_sp< SkPathEffect > Deserialize(const void *data, size_t size, const SkDeserialProcs *procs=nullptr)
DashType asADash(DashInfo *info) const
static sk_sp< SkPathEffect > MakeSum(sk_sp< SkPathEffect > first, sk_sp< SkPathEffect > second)
bool filterPath(SkPath *dst, const SkPath &src, SkStrokeRec *, const SkRect *cullR) const
SkSumPathEffect(sk_sp< SkPathEffect > first, sk_sp< SkPathEffect > second)
bool computeFastBounds(SkRect *bounds) const override
static sk_sp< SkPathEffect > Make(sk_sp< SkPathEffect > first, sk_sp< SkPathEffect > second)
bool onFilterPath(SkPath *dst, const SkPath &src, SkStrokeRec *rec, const SkRect *cullRect, const SkMatrix &ctm) const override
static const uint8_t buffer[]