/* * Copyright 2018 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef SkTrimImpl_DEFINED #define SkTrimImpl_DEFINED #include "include/effects/SkTrimPathEffect.h" #include "src/core/SkPathEffectBase.h" class SkTrimPE : public SkPathEffectBase { public: SkTrimPE(SkScalar startT, SkScalar stopT, SkTrimPathEffect::Mode); protected: void flatten(SkWriteBuffer&) const override; bool onFilterPath(SkPath* dst, const SkPath& src, SkStrokeRec*, const SkRect*, const SkMatrix&) const override; private: SK_FLATTENABLE_HOOKS(SkTrimPE) bool computeFastBounds(SkRect* bounds) const override { // Trimming a path returns a subset of the input path so just return true and leave bounds // unmodified return true; } const SkScalar fStartT, fStopT; const SkTrimPathEffect::Mode fMode; using INHERITED = SkPathEffectBase; }; #endif