SkBlurImageFilter.h revision b295fb6ff3222453912dfcb7a1ea5184d40014b5
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
21    SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkBlurImageFilter)
22
23protected:
24    explicit SkBlurImageFilter(SkFlattenableReadBuffer& buffer);
25    virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
26
27    virtual bool onFilterImage(Proxy*, const SkBitmap& src, const SkMatrix&,
28                               SkBitmap* result, SkIPoint* offset) SK_OVERRIDE;
29
30    bool canFilterImageGPU() const SK_OVERRIDE { return true; }
31    virtual bool filterImageGPU(Proxy* proxy, const SkBitmap& src, const SkMatrix& ctm,
32                                SkBitmap* result, SkIPoint* offset) SK_OVERRIDE;
33
34private:
35    SkSize   fSigma;
36    typedef SkImageFilter INHERITED;
37};
38
39#endif
40