29 fMatrixIsInvertible = fMatrix.
invert(&fInverse);
48 if (!fMatrixIsInvertible) {
51 #if defined(SK_BUILD_FOR_FUZZER)
63 this->
next(dst,
x++,
y, path);
65 }
while (--ucount > 0);
71 buffer.writeMatrix(fMatrix);
76 if (!fMatrixIsInvertible) {
83 src.transform(fInverse, &tmp);
93#if defined(SK_BUILD_FOR_FUZZER)
94 if (rect.height() > 100) {
98 for (
int y = rect.fTop;
y < rect.fBottom; ++
y) {
110 bool fMatrixIsInvertible;
146 dst->moveTo(dstP[0]);
147 dst->lineTo(dstP[1]);
153 buffer.readMatrix(&matrix);
164 const char*
getTypeName()
const override {
return "SkLine2DPathEffect"; }
179 dst->addPath(fPath, loc.
fX, loc.
fY);
184 buffer.readMatrix(&matrix);
196 const char*
getTypeName()
const override {
return "SkPath2DPathEffect"; }
#define SK_REGISTER_FLATTENABLE(type)
bool computeFastBounds(SkRect *) const override
virtual void end(SkPath *dst) const
bool onFilterPath(SkPath *dst, const SkPath &src, SkStrokeRec *rec, const SkRect *cullRect, const SkMatrix &) const override
virtual void next(const SkPoint &loc, int u, int v, SkPath *dst) const
const SkMatrix & getMatrix() const
virtual void begin(const SkIRect &uvBounds, SkPath *dst) const
Sk2DPathEffect(const SkMatrix &mat)
friend class Sk2DPathEffectBlitter
void flatten(SkWriteBuffer &buffer) const override
virtual void nextSpan(int x, int y, int ucount, SkPath *path) const
sk_sp< SkFlattenable >(* Factory)(SkReadBuffer &)
bool onFilterPath(SkPath *dst, const SkPath &src, SkStrokeRec *rec, const SkRect *cullRect, const SkMatrix &ctm) const override
SkLine2DPathEffectImpl(SkScalar width, const SkMatrix &matrix)
static sk_sp< SkFlattenable > CreateProc(SkReadBuffer &buffer)
const char * getTypeName() const override
void flatten(SkWriteBuffer &buffer) const override
Factory getFactory() const override
void nextSpan(int u, int v, int ucount, SkPath *dst) const override
static sk_sp< SkPathEffect > Make(SkScalar width, const SkMatrix &matrix)
static void RegisterFlattenables()
void mapPoints(SkPoint dst[], const SkPoint src[], int count) const
bool invert(SkMatrix *inverse) const
static sk_sp< SkFlattenable > CreateProc(SkReadBuffer &buffer)
void flatten(SkWriteBuffer &buffer) const override
const char * getTypeName() const override
void next(const SkPoint &loc, int u, int v, SkPath *dst) const override
Factory getFactory() const override
SkPath2DPathEffectImpl(const SkMatrix &m, const SkPath &p)
static sk_sp< SkPathEffect > Make(const SkMatrix &matrix, const SkPath &path)
static void RegisterFlattenables()
const SkRect & getBounds() const
const SkIRect & rect() const
bool setPath(const SkPath &path, const SkRegion &clip)
void setStrokeStyle(SkScalar width, bool strokeAndFill=false)
virtual void writeScalar(SkScalar value)=0
virtual void writePath(const SkPath &path)=0
static const uint8_t buffer[]
int32_t fLeft
smaller x-axis bounds
void round(SkIRect *dst) const