blob: fa9a996298aedcde6dfb2966017993e610a0f274 [file] [log] [blame]
bsalomon@google.com82aa7482012-08-13 14:22:17 +00001/*
2 * Copyright 2012 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
9#ifndef SkMagnifierImageFilter_DEFINED
10#define SkMagnifierImageFilter_DEFINED
11
12#include "SkRect.h"
13#include "SkImageFilter.h"
14
15class SK_API SkMagnifierImageFilter : public SkImageFilter {
16public:
Robert Phillips8e1c4e62017-02-19 12:27:01 -050017 static sk_sp<SkImageFilter> Make(const SkRect& srcRect, SkScalar inset,
robertphillipsb2a4dc62016-04-14 07:54:04 -070018 sk_sp<SkImageFilter> input,
19 const CropRect* cropRect = nullptr);
bsalomon@google.com82aa7482012-08-13 14:22:17 +000020
robertphillipsf3f5bad2014-12-19 13:49:15 -080021 SK_TO_STRING_OVERRIDE()
bsalomon@google.com82aa7482012-08-13 14:22:17 +000022 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkMagnifierImageFilter)
23
24protected:
robertphillipsb2a4dc62016-04-14 07:54:04 -070025 SkMagnifierImageFilter(const SkRect& srcRect,
26 SkScalar inset,
27 sk_sp<SkImageFilter> input,
28 const CropRect* cropRect);
mtklein36352bf2015-03-25 18:17:31 -070029 void flatten(SkWriteBuffer&) const override;
bsalomon@google.com82aa7482012-08-13 14:22:17 +000030
robertphillipsb2a4dc62016-04-14 07:54:04 -070031 sk_sp<SkSpecialImage> onFilterImage(SkSpecialImage* source, const Context&,
32 SkIPoint* offset) const override;
Matt Sarett6d72ed92017-04-10 16:35:33 -040033 sk_sp<SkImageFilter> onMakeColorSpace(SkColorSpaceXformer*) const override;
bsalomon@google.com82aa7482012-08-13 14:22:17 +000034
bsalomon@google.com82aa7482012-08-13 14:22:17 +000035private:
Robert Phillips8e1c4e62017-02-19 12:27:01 -050036 SkRect fSrcRect;
bsalomon@google.com82aa7482012-08-13 14:22:17 +000037 SkScalar fInset;
Robert Phillips8e1c4e62017-02-19 12:27:01 -050038
bsalomon@google.com82aa7482012-08-13 14:22:17 +000039 typedef SkImageFilter INHERITED;
40};
41
42#endif