144888c66d4bf03da58eb9fbd3db92eb477141aabsenorblanco@chromium.org/*
244888c66d4bf03da58eb9fbd3db92eb477141aabsenorblanco@chromium.org * Copyright 2012 The Android Open Source Project
344888c66d4bf03da58eb9fbd3db92eb477141aabsenorblanco@chromium.org *
444888c66d4bf03da58eb9fbd3db92eb477141aabsenorblanco@chromium.org * Use of this source code is governed by a BSD-style license that can be
544888c66d4bf03da58eb9fbd3db92eb477141aabsenorblanco@chromium.org * found in the LICENSE file.
644888c66d4bf03da58eb9fbd3db92eb477141aabsenorblanco@chromium.org */
744888c66d4bf03da58eb9fbd3db92eb477141aabsenorblanco@chromium.org
844888c66d4bf03da58eb9fbd3db92eb477141aabsenorblanco@chromium.org#ifndef SkColorFilterImageFilter_DEFINED
944888c66d4bf03da58eb9fbd3db92eb477141aabsenorblanco@chromium.org#define SkColorFilterImageFilter_DEFINED
1044888c66d4bf03da58eb9fbd3db92eb477141aabsenorblanco@chromium.org
11377c14a1e648f4427bd11474fad8ac264d98aff2senorblanco@chromium.org#include "SkImageFilter.h"
1244888c66d4bf03da58eb9fbd3db92eb477141aabsenorblanco@chromium.org
1344888c66d4bf03da58eb9fbd3db92eb477141aabsenorblanco@chromium.orgclass SkColorFilter;
1444888c66d4bf03da58eb9fbd3db92eb477141aabsenorblanco@chromium.org
15377c14a1e648f4427bd11474fad8ac264d98aff2senorblanco@chromium.orgclass SK_API SkColorFilterImageFilter : public SkImageFilter {
1644888c66d4bf03da58eb9fbd3db92eb477141aabsenorblanco@chromium.orgpublic:
17194d775edcf5fa6e82098a97ad53018d70db1155senorblanco@chromium.org    static SkColorFilterImageFilter* Create(SkColorFilter* cf,
18194d775edcf5fa6e82098a97ad53018d70db1155senorblanco@chromium.org                                            SkImageFilter* input = NULL,
19b295fb6ff3222453912dfcb7a1ea5184d40014b5senorblanco@chromium.org                                            const CropRect* cropRect = NULL);
2044888c66d4bf03da58eb9fbd3db92eb477141aabsenorblanco@chromium.org    virtual ~SkColorFilterImageFilter();
2144888c66d4bf03da58eb9fbd3db92eb477141aabsenorblanco@chromium.org
2244888c66d4bf03da58eb9fbd3db92eb477141aabsenorblanco@chromium.org    SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkColorFilterImageFilter)
23fbfcd5602128ec010c82cb733c9cdc0a3254f9f3rmistry@google.com
2444888c66d4bf03da58eb9fbd3db92eb477141aabsenorblanco@chromium.orgprotected:
258b0e8ac5f582de80356019406e2975079bf0829dcommit-bot@chromium.org    SkColorFilterImageFilter(SkReadBuffer& buffer);
268b0e8ac5f582de80356019406e2975079bf0829dcommit-bot@chromium.org    virtual void flatten(SkWriteBuffer&) const SK_OVERRIDE;
27fbfcd5602128ec010c82cb733c9cdc0a3254f9f3rmistry@google.com
284cb543d6057b692e1099e9f115155f0bf323a0c8senorblanco@chromium.org    virtual bool onFilterImage(Proxy*, const SkBitmap& src, const Context&,
29ae761f7545d8ebf181d220169afac2056b057b8ccommit-bot@chromium.org                               SkBitmap* result, SkIPoint* loc) const SK_OVERRIDE;
30fbfcd5602128ec010c82cb733c9cdc0a3254f9f3rmistry@google.com
31a1c511b8704c6c266b90860a4c68f30ca7514f9bsugoi@google.com    virtual bool asColorFilter(SkColorFilter**) const SK_OVERRIDE;
328d21f6c7a9d0cf4f87d77c235c6da7203620c7e5senorblanco@chromium.org
3344888c66d4bf03da58eb9fbd3db92eb477141aabsenorblanco@chromium.orgprivate:
34194d775edcf5fa6e82098a97ad53018d70db1155senorblanco@chromium.org    SkColorFilterImageFilter(SkColorFilter* cf,
35194d775edcf5fa6e82098a97ad53018d70db1155senorblanco@chromium.org                             SkImageFilter* input,
36b295fb6ff3222453912dfcb7a1ea5184d40014b5senorblanco@chromium.org                             const CropRect* cropRect = NULL);
3744888c66d4bf03da58eb9fbd3db92eb477141aabsenorblanco@chromium.org    SkColorFilter*  fColorFilter;
38fbfcd5602128ec010c82cb733c9cdc0a3254f9f3rmistry@google.com
39377c14a1e648f4427bd11474fad8ac264d98aff2senorblanco@chromium.org    typedef SkImageFilter INHERITED;
4044888c66d4bf03da58eb9fbd3db92eb477141aabsenorblanco@chromium.org};
4144888c66d4bf03da58eb9fbd3db92eb477141aabsenorblanco@chromium.org
4244888c66d4bf03da58eb9fbd3db92eb477141aabsenorblanco@chromium.org#endif
43