SkBlurImageFilter.h revision 8b0e8ac5f582de80356019406e2975079bf0829d
1/*
2 * Copyright 2011 The Android Open Source Project
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#ifndef SkBlurImageFilter_DEFINED
9#define SkBlurImageFilter_DEFINED
10
11#include "SkImageFilter.h"
12#include "SkSize.h"
13
14class SK_API SkBlurImageFilter : public SkImageFilter {
15public:
16    SkBlurImageFilter(SkScalar sigmaX,
17                      SkScalar sigmaY,
18                      SkImageFilter* input = NULL,
19                      const CropRect* cropRect = NULL);
20    virtual void computeFastBounds(const SkRect&, SkRect*) const SK_OVERRIDE;
21
22    SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkBlurImageFilter)
23
24protected:
25    explicit SkBlurImageFilter(SkReadBuffer& buffer);
26    virtual void flatten(SkWriteBuffer&) const SK_OVERRIDE;
27
28    virtual bool onFilterImage(Proxy*, const SkBitmap& src, const SkMatrix&,
29                               SkBitmap* result, SkIPoint* offset) SK_OVERRIDE;
30
31    bool canFilterImageGPU() const SK_OVERRIDE { return true; }
32    virtual bool filterImageGPU(Proxy* proxy, const SkBitmap& src, const SkMatrix& ctm,
33                                SkBitmap* result, SkIPoint* offset) SK_OVERRIDE;
34
35private:
36    SkSize   fSigma;
37    typedef SkImageFilter INHERITED;
38};
39
40#endif
41