Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / skia / include / effects / SkTestImageFilters.h
1 #ifndef _SkTestImageFilters_h
2 #define _SkTestImageFilters_h
3
4 #include "SkImageFilter.h"
5 #include "SkPoint.h"
6
7 // Fun mode that scales down (only) and then scales back up to look pixelated
8 class SK_API SkDownSampleImageFilter : public SkImageFilter {
9 public:
10     static SkDownSampleImageFilter* Create(SkScalar scale, SkImageFilter* input = NULL) {
11         if (!SkScalarIsFinite(scale)) {
12             return NULL;
13         }
14         // we don't support scale in this range
15         if (scale > SK_Scalar1 || scale <= 0) {
16             return NULL;
17         }
18         return SkNEW_ARGS(SkDownSampleImageFilter, (scale, input));
19     }
20
21     SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDownSampleImageFilter)
22
23 protected:
24     SkDownSampleImageFilter(SkScalar scale, SkImageFilter* input)
25       : INHERITED(1, &input), fScale(scale) {}
26 #ifdef SK_SUPPORT_LEGACY_DEEPFLATTENING
27     SkDownSampleImageFilter(SkReadBuffer& buffer);
28 #endif
29     virtual void flatten(SkWriteBuffer&) const SK_OVERRIDE;
30
31     virtual bool onFilterImage(Proxy*, const SkBitmap& src, const Context&,
32                                SkBitmap* result, SkIPoint* loc) const SK_OVERRIDE;
33
34 private:
35     SkScalar fScale;
36
37     typedef SkImageFilter INHERITED;
38 };
39
40 #endif