Skia
2DGraphicsLibrary
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SkImageSource.h
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 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  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>);
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
void flatten(SkWriteBuffer &) const override
Override this if your subclass needs to record data that it will need to recreate itself from its Cre...
virtual sk_sp< SkSpecialImage > onFilterImage(SkSpecialImage *src, const Context &, SkIPoint *offset) const =0
This is the virtual which should be overridden by the derived class to perform image filtering...
Definition: SkRefCnt.h:125
Base class for image filters.
Definition: SkImageFilter.h:36
Definition: SkImageSource.h:14
Definition: SkWriteBuffer.h:27
Definition: SkRect.h:404
Definition: SkImageFilter.h:54
SkIPoint holds two 32 bit integer coordinates.
Definition: SkPoint.h:40