11f45e934b68a5985b2127ec871ff593c3bfc7c2erileya@google.com/*
21f45e934b68a5985b2127ec871ff593c3bfc7c2erileya@google.com * Copyright 2013 Google Inc.
31f45e934b68a5985b2127ec871ff593c3bfc7c2erileya@google.com *
41f45e934b68a5985b2127ec871ff593c3bfc7c2erileya@google.com * Use of this source code is governed by a BSD-style license that can be
51f45e934b68a5985b2127ec871ff593c3bfc7c2erileya@google.com * found in the LICENSE file.
61f45e934b68a5985b2127ec871ff593c3bfc7c2erileya@google.com */
71f45e934b68a5985b2127ec871ff593c3bfc7c2erileya@google.com
81f45e934b68a5985b2127ec871ff593c3bfc7c2erileya@google.com#include "SkColor.h"
91f45e934b68a5985b2127ec871ff593c3bfc7c2erileya@google.com#include "SkImageFilter.h"
101f45e934b68a5985b2127ec871ff593c3bfc7c2erileya@google.com#include "SkScalar.h"
111f45e934b68a5985b2127ec871ff593c3bfc7c2erileya@google.com
121f45e934b68a5985b2127ec871ff593c3bfc7c2erileya@google.comclass SK_API SkDropShadowImageFilter : public SkImageFilter {
131f45e934b68a5985b2127ec871ff593c3bfc7c2erileya@google.compublic:
144813458d89fb276680168848bd861b307cf83f51rileya@google.com    static SkDropShadowImageFilter* Create(SkScalar dx, SkScalar dy, SkScalar sigma,
151f45e934b68a5985b2127ec871ff593c3bfc7c2erileya@google.com                                           SkColor color, SkImageFilter* input = NULL) {
161f45e934b68a5985b2127ec871ff593c3bfc7c2erileya@google.com        return SkNEW_ARGS(SkDropShadowImageFilter, (dx, dy, sigma, color, input));
174b32bd53c63b245707822ae83e3215863303bf43commit-bot@chromium.org    }
18ac2c82c8528ae45bcdac1f7c4b578aff1d9bbb7eskia.committer@gmail.com    static SkDropShadowImageFilter* Create(SkScalar dx, SkScalar dy,
194b32bd53c63b245707822ae83e3215863303bf43commit-bot@chromium.org                                           SkScalar sigmaX, SkScalar sigmaY, SkColor color,
204b32bd53c63b245707822ae83e3215863303bf43commit-bot@chromium.org                                           SkImageFilter* input = NULL,
214b32bd53c63b245707822ae83e3215863303bf43commit-bot@chromium.org                                           const CropRect* cropRect = NULL) {
224b32bd53c63b245707822ae83e3215863303bf43commit-bot@chromium.org        return SkNEW_ARGS(SkDropShadowImageFilter, (dx, dy, sigmaX, sigmaY,
234b32bd53c63b245707822ae83e3215863303bf43commit-bot@chromium.org                                                    color, input, cropRect));
244b32bd53c63b245707822ae83e3215863303bf43commit-bot@chromium.org    }
254b32bd53c63b245707822ae83e3215863303bf43commit-bot@chromium.org    virtual void computeFastBounds(const SkRect&, SkRect*) const SK_OVERRIDE;
264b32bd53c63b245707822ae83e3215863303bf43commit-bot@chromium.org    SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDropShadowImageFilter)
274b32bd53c63b245707822ae83e3215863303bf43commit-bot@chromium.org
284b32bd53c63b245707822ae83e3215863303bf43commit-bot@chromium.orgprotected:
294b32bd53c63b245707822ae83e3215863303bf43commit-bot@chromium.org    SkDropShadowImageFilter(SkScalar dx, SkScalar dy, SkScalar sigma, SkColor,
304b32bd53c63b245707822ae83e3215863303bf43commit-bot@chromium.org                            SkImageFilter* input);
314b32bd53c63b245707822ae83e3215863303bf43commit-bot@chromium.org    SkDropShadowImageFilter(SkScalar dx, SkScalar dy, SkScalar sigmaX, SkScalar sigmaY, SkColor,
324b32bd53c63b245707822ae83e3215863303bf43commit-bot@chromium.org                            SkImageFilter* input, const CropRect* cropRect);
334b32bd53c63b245707822ae83e3215863303bf43commit-bot@chromium.org    explicit SkDropShadowImageFilter(SkReadBuffer&);
341f45e934b68a5985b2127ec871ff593c3bfc7c2erileya@google.com    virtual void flatten(SkWriteBuffer&) const SK_OVERRIDE;
351f45e934b68a5985b2127ec871ff593c3bfc7c2erileya@google.com    virtual bool onFilterImage(Proxy*, const SkBitmap& source, const Context&, SkBitmap* result, SkIPoint* loc) const SK_OVERRIDE;
361f45e934b68a5985b2127ec871ff593c3bfc7c2erileya@google.com    virtual bool onFilterBounds(const SkIRect& src, const SkMatrix&,
374813458d89fb276680168848bd861b307cf83f51rileya@google.com                                SkIRect* dst) const SK_OVERRIDE;
381f45e934b68a5985b2127ec871ff593c3bfc7c2erileya@google.com
394813458d89fb276680168848bd861b307cf83f51rileya@google.comprivate:
401f45e934b68a5985b2127ec871ff593c3bfc7c2erileya@google.com    SkScalar fDx, fDy, fSigmaX, fSigmaY;
414b32bd53c63b245707822ae83e3215863303bf43commit-bot@chromium.org    SkColor fColor;
424b32bd53c63b245707822ae83e3215863303bf43commit-bot@chromium.org    typedef SkImageFilter INHERITED;
431f45e934b68a5985b2127ec871ff593c3bfc7c2erileya@google.com};
441f45e934b68a5985b2127ec871ff593c3bfc7c2erileya@google.com