Line data Source code
1 : /*
2 : * Copyright 2015 Google Inc.
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 SkImageSource_DEFINED
9 : #define SkImageSource_DEFINED
10 :
11 : #include "SkImage.h"
12 : #include "SkImageFilter.h"
13 :
14 0 : class SK_API SkImageSource : public SkImageFilter {
15 : public:
16 : static sk_sp<SkImageFilter> Make(sk_sp<SkImage> image);
17 : static sk_sp<SkImageFilter> Make(sk_sp<SkImage> image,
18 : const SkRect& srcRect,
19 : const SkRect& dstRect,
20 : SkFilterQuality filterQuality);
21 :
22 : SkRect computeFastBounds(const SkRect& src) const override;
23 :
24 : SK_TO_STRING_OVERRIDE()
25 0 : SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkImageSource)
26 :
27 : protected:
28 : void flatten(SkWriteBuffer&) const override;
29 :
30 : sk_sp<SkSpecialImage> onFilterImage(SkSpecialImage* source, const Context&,
31 : SkIPoint* offset) const override;
32 : sk_sp<SkImageFilter> onMakeColorSpace(SkColorSpaceXformer*) const override;
33 :
34 : private:
35 : explicit SkImageSource(sk_sp<SkImage>);
36 : SkImageSource(sk_sp<SkImage>,
37 : const SkRect& srcRect,
38 : const SkRect& dstRect,
39 : SkFilterQuality);
40 :
41 : sk_sp<SkImage> fImage;
42 : SkRect fSrcRect, fDstRect;
43 : SkFilterQuality fFilterQuality;
44 :
45 : typedef SkImageFilter INHERITED;
46 : };
47 :
48 : #endif
|