SkTestImageFilters.h revision 4a9a612b5200597cca0bda0a356250835cbdc7d6
1#ifndef _SkTestImageFilters_h
2#define _SkTestImageFilters_h
3
4#include "SkImageFilter.h"
5#include "SkPoint.h"
6
7class SK_API SkComposeImageFilter : public SkImageFilter {
8public:
9    SkComposeImageFilter(SkImageFilter* outer, SkImageFilter* inner) : INHERITED(outer, inner) {}
10    virtual ~SkComposeImageFilter();
11
12    SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkComposeImageFilter)
13
14protected:
15    SkComposeImageFilter(SkFlattenableReadBuffer& buffer);
16
17    virtual bool onFilterImage(Proxy*, const SkBitmap& src, const SkMatrix&,
18                               SkBitmap* result, SkIPoint* loc) SK_OVERRIDE;
19    virtual bool onFilterBounds(const SkIRect&, const SkMatrix&, SkIRect*) SK_OVERRIDE;
20
21private:
22    typedef SkImageFilter INHERITED;
23};
24
25///////////////////////////////////////////////////////////////////////////////
26
27// Fun mode that scales down (only) and then scales back up to look pixelated
28class SK_API SkDownSampleImageFilter : public SkImageFilter {
29public:
30    SkDownSampleImageFilter(SkScalar scale) : INHERITED(0), fScale(scale) {}
31
32    SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDownSampleImageFilter)
33
34protected:
35    SkDownSampleImageFilter(SkFlattenableReadBuffer& buffer);
36    virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
37
38    virtual bool onFilterImage(Proxy*, const SkBitmap& src, const SkMatrix&,
39                               SkBitmap* result, SkIPoint* loc) SK_OVERRIDE;
40
41private:
42    SkScalar fScale;
43
44    typedef SkImageFilter INHERITED;
45};
46
47#endif
48