Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(279)

Side by Side Diff: include/core/SkImageFilter.h

Issue 148883011: Make SkImageFilter methods const. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: More fixes to gm/ Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « include/core/SkDevice.h ('k') | include/core/SkImageFilterUtils.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2011 Google Inc. 2 * Copyright 2011 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #ifndef SkImageFilter_DEFINED 8 #ifndef SkImageFilter_DEFINED
9 #define SkImageFilter_DEFINED 9 #define SkImageFilter_DEFINED
10 10
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 SkRect fRect; 48 SkRect fRect;
49 uint32_t fFlags; 49 uint32_t fFlags;
50 }; 50 };
51 51
52 class Proxy { 52 class Proxy {
53 public: 53 public:
54 virtual ~Proxy() {}; 54 virtual ~Proxy() {};
55 55
56 virtual SkBaseDevice* createDevice(int width, int height) = 0; 56 virtual SkBaseDevice* createDevice(int width, int height) = 0;
57 // returns true if the proxy can handle this filter natively 57 // returns true if the proxy can handle this filter natively
58 virtual bool canHandleImageFilter(SkImageFilter*) = 0; 58 virtual bool canHandleImageFilter(const SkImageFilter*) = 0;
59 // returns true if the proxy handled the filter itself. if this returns 59 // returns true if the proxy handled the filter itself. if this returns
60 // false then the filter's code will be called. 60 // false then the filter's code will be called.
61 virtual bool filterImage(SkImageFilter*, const SkBitmap& src, 61 virtual bool filterImage(const SkImageFilter*, const SkBitmap& src,
62 const SkMatrix& ctm, 62 const SkMatrix& ctm,
63 SkBitmap* result, SkIPoint* offset) = 0; 63 SkBitmap* result, SkIPoint* offset) = 0;
64 }; 64 };
65 65
66 /** 66 /**
67 * Request a new (result) image to be created from the src image. 67 * Request a new (result) image to be created from the src image.
68 * If the src has no pixels (isNull()) then the request just wants to 68 * If the src has no pixels (isNull()) then the request just wants to
69 * receive the config and width/height of the result. 69 * receive the config and width/height of the result.
70 * 70 *
71 * The matrix is the current matrix on the canvas. 71 * The matrix is the current matrix on the canvas.
72 * 72 *
73 * Offset is the amount to translate the resulting image relative to the 73 * Offset is the amount to translate the resulting image relative to the
74 * src when it is drawn. This is an out-param. 74 * src when it is drawn. This is an out-param.
75 * 75 *
76 * If the result image cannot be created, return false, in which case both 76 * If the result image cannot be created, return false, in which case both
77 * the result and offset parameters will be ignored by the caller. 77 * the result and offset parameters will be ignored by the caller.
78 */ 78 */
79 bool filterImage(Proxy*, const SkBitmap& src, const SkMatrix& ctm, 79 bool filterImage(Proxy*, const SkBitmap& src, const SkMatrix& ctm,
80 SkBitmap* result, SkIPoint* offset); 80 SkBitmap* result, SkIPoint* offset) const;
81 81
82 /** 82 /**
83 * Given the src bounds of an image, this returns the bounds of the result 83 * Given the src bounds of an image, this returns the bounds of the result
84 * image after the filter has been applied. 84 * image after the filter has been applied.
85 */ 85 */
86 bool filterBounds(const SkIRect& src, const SkMatrix& ctm, SkIRect* dst) con st; 86 bool filterBounds(const SkIRect& src, const SkMatrix& ctm, SkIRect* dst) con st;
87 87
88 /** 88 /**
89 * Returns true if the filter can be processed on the GPU. This is most 89 * Returns true if the filter can be processed on the GPU. This is most
90 * often used for multi-pass effects, where intermediate results must be 90 * often used for multi-pass effects, where intermediate results must be
91 * rendered to textures. For single-pass effects, use asNewEffect(). 91 * rendered to textures. For single-pass effects, use asNewEffect().
92 * The default implementation returns asNewEffect(NULL, NULL, SkMatrix::I() , 92 * The default implementation returns asNewEffect(NULL, NULL, SkMatrix::I() ,
93 * SkIRect()). 93 * SkIRect()).
94 */ 94 */
95 virtual bool canFilterImageGPU() const; 95 virtual bool canFilterImageGPU() const;
96 96
97 /** 97 /**
98 * Process this image filter on the GPU. This is most often used for 98 * Process this image filter on the GPU. This is most often used for
99 * multi-pass effects, where intermediate results must be rendered to 99 * multi-pass effects, where intermediate results must be rendered to
100 * textures. For single-pass effects, use asNewEffect(). src is the 100 * textures. For single-pass effects, use asNewEffect(). src is the
101 * source image for processing, as a texture-backed bitmap. result is 101 * source image for processing, as a texture-backed bitmap. result is
102 * the destination bitmap, which should contain a texture-backed pixelref 102 * the destination bitmap, which should contain a texture-backed pixelref
103 * on success. offset is the amount to translate the resulting image 103 * on success. offset is the amount to translate the resulting image
104 * relative to the src when it is drawn. The default implementation does 104 * relative to the src when it is drawn. The default implementation does
105 * single-pass processing using asNewEffect(). 105 * single-pass processing using asNewEffect().
106 */ 106 */
107 virtual bool filterImageGPU(Proxy*, const SkBitmap& src, const SkMatrix& ctm , 107 virtual bool filterImageGPU(Proxy*, const SkBitmap& src, const SkMatrix& ctm ,
108 SkBitmap* result, SkIPoint* offset); 108 SkBitmap* result, SkIPoint* offset) const;
109 109
110 /** 110 /**
111 * Returns whether this image filter is a color filter and puts the color f ilter into the 111 * Returns whether this image filter is a color filter and puts the color f ilter into the
112 * "filterPtr" parameter if it can. Does nothing otherwise. 112 * "filterPtr" parameter if it can. Does nothing otherwise.
113 * If this returns false, then the filterPtr is unchanged. 113 * If this returns false, then the filterPtr is unchanged.
114 * If this returns true, then if filterPtr is not null, it must be set to a ref'd colorfitler 114 * If this returns true, then if filterPtr is not null, it must be set to a ref'd colorfitler
115 * (i.e. it may not be set to NULL). 115 * (i.e. it may not be set to NULL).
116 */ 116 */
117 virtual bool asColorFilter(SkColorFilter** filterPtr) const; 117 virtual bool asColorFilter(SkColorFilter** filterPtr) const;
118 118
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 * The matrix is the current matrix on the canvas. 180 * The matrix is the current matrix on the canvas.
181 * 181 *
182 * Offset is the amount to translate the resulting image relative to the 182 * Offset is the amount to translate the resulting image relative to the
183 * src when it is drawn. This is an out-param. 183 * src when it is drawn. This is an out-param.
184 * 184 *
185 * If the result image cannot be created, this should false, in which 185 * If the result image cannot be created, this should false, in which
186 * case both the result and offset parameters will be ignored by the 186 * case both the result and offset parameters will be ignored by the
187 * caller. 187 * caller.
188 */ 188 */
189 virtual bool onFilterImage(Proxy*, const SkBitmap& src, const SkMatrix&, 189 virtual bool onFilterImage(Proxy*, const SkBitmap& src, const SkMatrix&,
190 SkBitmap* result, SkIPoint* offset); 190 SkBitmap* result, SkIPoint* offset) const;
191 // Given the bounds of the destination rect to be filled in device 191 // Given the bounds of the destination rect to be filled in device
192 // coordinates (first parameter), and the CTM, compute (conservatively) 192 // coordinates (first parameter), and the CTM, compute (conservatively)
193 // which rect of the source image would be required (third parameter). 193 // which rect of the source image would be required (third parameter).
194 // Used for clipping and temp-buffer allocations, so the result need not 194 // Used for clipping and temp-buffer allocations, so the result need not
195 // be exact, but should never be smaller than the real answer. The default 195 // be exact, but should never be smaller than the real answer. The default
196 // implementation recursively unions all input bounds, or returns false if 196 // implementation recursively unions all input bounds, or returns false if
197 // no inputs. 197 // no inputs.
198 virtual bool onFilterBounds(const SkIRect&, const SkMatrix&, SkIRect*) const ; 198 virtual bool onFilterBounds(const SkIRect&, const SkMatrix&, SkIRect*) const ;
199 199
200 // Applies "matrix" to the crop rect, and sets "rect" to the intersection of 200 // Applies "matrix" to the crop rect, and sets "rect" to the intersection of
(...skipping 22 matching lines...) Expand all
223 const SkIRect& bounds) const; 223 const SkIRect& bounds) const;
224 224
225 private: 225 private:
226 typedef SkFlattenable INHERITED; 226 typedef SkFlattenable INHERITED;
227 int fInputCount; 227 int fInputCount;
228 SkImageFilter** fInputs; 228 SkImageFilter** fInputs;
229 CropRect fCropRect; 229 CropRect fCropRect;
230 }; 230 };
231 231
232 #endif 232 #endif
OLDNEW
« no previous file with comments | « include/core/SkDevice.h ('k') | include/core/SkImageFilterUtils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698