aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/effects/SkBlurDrawLooper.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/effects/SkBlurDrawLooper.h')
-rw-r--r--include/effects/SkBlurDrawLooper.h60
1 files changed, 6 insertions, 54 deletions
diff --git a/include/effects/SkBlurDrawLooper.h b/include/effects/SkBlurDrawLooper.h
index 415018a2ad..45289c8941 100644
--- a/include/effects/SkBlurDrawLooper.h
+++ b/include/effects/SkBlurDrawLooper.h
@@ -10,61 +10,13 @@
#define SkBlurDrawLooper_DEFINED
#include "SkDrawLooper.h"
-#include "SkColor.h"
-class SkArenaAlloc;
-class SkMaskFilter;
-class SkColorFilter;
-
-/** \class SkBlurDrawLooper
- This class draws a shadow of the object (possibly offset), and then draws
- the original object in its original position.
- should there be an option to just draw the shadow/blur layer? webkit?
-*/
-class SK_API SkBlurDrawLooper : public SkDrawLooper {
-public:
- static sk_sp<SkDrawLooper> Make(SkColor color, SkScalar sigma, SkScalar dx, SkScalar dy) {
- return sk_sp<SkDrawLooper>(new SkBlurDrawLooper(color, sigma, dx, dy));
- }
-
- SkDrawLooper::Context* makeContext(SkCanvas*, SkArenaAlloc*) const override;
-
- SK_TO_STRING_OVERRIDE()
- SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkBlurDrawLooper)
-
-protected:
- SkBlurDrawLooper(SkColor color, SkScalar sigma, SkScalar dx, SkScalar dy);
-
- void flatten(SkWriteBuffer&) const override;
-
- bool asABlurShadow(BlurShadowRec*) const override;
-
-private:
- sk_sp<SkMaskFilter> fBlur;
- SkScalar fDx, fDy, fSigma;
- SkColor fBlurColor;
-
- enum State {
- kBeforeEdge,
- kAfterEdge,
- kDone
- };
-
- class BlurDrawLooperContext : public SkDrawLooper::Context {
- public:
- explicit BlurDrawLooperContext(const SkBlurDrawLooper* looper);
-
- bool next(SkCanvas* canvas, SkPaint* paint) override;
-
- private:
- const SkBlurDrawLooper* fLooper;
- State fState;
- };
-
- void init(SkScalar sigma, SkScalar dx, SkScalar dy, SkColor color);
- void initEffects();
-
- typedef SkDrawLooper INHERITED;
+/**
+ * Draws a shadow of the object (possibly offset), and then draws the original object in
+ * its original position.
+ */
+namespace SkBlurDrawLooper {
+ sk_sp<SkDrawLooper> Make(SkColor color, SkScalar sigma, SkScalar dx, SkScalar dy);
};
#endif