• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 "SkImageFilter.h"
12 
13 class SkImage;
14 
15 class SK_API SkImageSource : public SkImageFilter {
16 public:
17     static SkImageFilter* Create(const SkImage*);
18     static SkImageFilter* Create(const SkImage*,
19                                  const SkRect& srcRect,
20                                  const SkRect& dstRect,
21                                  SkFilterQuality);
22 
23     void computeFastBounds(const SkRect& src, SkRect* dst) const override;
24 
25     SK_TO_STRING_OVERRIDE()
26     SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkImageSource)
27 
28 protected:
29     void flatten(SkWriteBuffer&) const override;
30 
31     bool onFilterImageDeprecated(Proxy*, const SkBitmap& src, const Context&,
32                                  SkBitmap* result, SkIPoint* offset) const override;
33 
34 private:
35     explicit SkImageSource(const SkImage*);
36     SkImageSource(const SkImage*,
37                   const SkRect& srcRect,
38                   const SkRect& dstRect,
39                   SkFilterQuality);
40 
41     SkAutoTUnref<const SkImage> fImage;
42     SkRect                      fSrcRect, fDstRect;
43     SkFilterQuality             fFilterQuality;
44 
45     typedef SkImageFilter INHERITED;
46 };
47 
48 #endif
49