OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2013 Google Inc. | 2 * Copyright 2013 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 #include "SkBenchmark.h" | 7 #include "SkBenchmark.h" |
8 #include "SkCanvas.h" | 8 #include "SkCanvas.h" |
9 #include "SkColorFilterImageFilter.h" | 9 #include "SkColorFilterImageFilter.h" |
10 #include "SkColorMatrixFilter.h" | 10 #include "SkColorMatrixFilter.h" |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
69 | 69 |
70 protected: | 70 protected: |
71 virtual const char* onGetName() SK_OVERRIDE { | 71 virtual const char* onGetName() SK_OVERRIDE { |
72 return isSmall() ? "colorfilter_dim_bright_small" : "colorfilter_dim_bri
ght_large"; | 72 return isSmall() ? "colorfilter_dim_bright_small" : "colorfilter_dim_bri
ght_large"; |
73 } | 73 } |
74 | 74 |
75 virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { | 75 virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { |
76 SkRect r = getFilterRect(); | 76 SkRect r = getFilterRect(); |
77 SkPaint paint; | 77 SkPaint paint; |
78 paint.setColor(SK_ColorRED); | 78 paint.setColor(SK_ColorRED); |
79 for (float brightness = -1.0f; brightness <= 1.0f; brightness += 0.4f) { | 79 |
80 SkAutoTUnref<SkImageFilter> dim(make_brightness(-brightness)); | 80 for (int i = 0; i < this->getLoops(); i++) { |
81 SkAutoTUnref<SkImageFilter> bright(make_brightness(brightness, dim))
; | 81 for (float brightness = -1.0f; brightness <= 1.0f; brightness += 0.4
f) { |
82 paint.setImageFilter(bright); | 82 SkAutoTUnref<SkImageFilter> dim(make_brightness(-brightness)); |
83 canvas->drawRect(r, paint); | 83 SkAutoTUnref<SkImageFilter> bright(make_brightness(brightness, d
im)); |
| 84 paint.setImageFilter(bright); |
| 85 canvas->drawRect(r, paint); |
| 86 } |
84 } | 87 } |
85 } | 88 } |
86 | 89 |
87 private: | 90 private: |
88 typedef ColorFilterBaseBench INHERITED; | 91 typedef ColorFilterBaseBench INHERITED; |
89 }; | 92 }; |
90 | 93 |
91 class ColorFilterBrightGrayBench : public ColorFilterBaseBench { | 94 class ColorFilterBrightGrayBench : public ColorFilterBaseBench { |
92 | 95 |
93 public: | 96 public: |
94 ColorFilterBrightGrayBench(void* param, bool small) : INHERITED(param, small
) { | 97 ColorFilterBrightGrayBench(void* param, bool small) : INHERITED(param, small
) { |
95 } | 98 } |
96 | 99 |
97 protected: | 100 protected: |
98 virtual const char* onGetName() SK_OVERRIDE { | 101 virtual const char* onGetName() SK_OVERRIDE { |
99 return isSmall() ? "colorfilter_bright_gray_small" : "colorfilter_bright
_gray_large"; | 102 return isSmall() ? "colorfilter_bright_gray_small" : "colorfilter_bright
_gray_large"; |
100 } | 103 } |
101 | 104 |
102 virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { | 105 virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { |
103 SkRect r = getFilterRect(); | 106 SkRect r = getFilterRect(); |
104 SkPaint paint; | 107 SkPaint paint; |
105 paint.setColor(SK_ColorRED); | 108 paint.setColor(SK_ColorRED); |
106 { | 109 for (int i = 0; i < this->getLoops(); i++) { |
107 SkAutoTUnref<SkImageFilter> brightness(make_brightness(0.9f)); | 110 SkAutoTUnref<SkImageFilter> brightness(make_brightness(0.9f)); |
108 SkAutoTUnref<SkImageFilter> grayscale(make_grayscale(brightness)); | 111 SkAutoTUnref<SkImageFilter> grayscale(make_grayscale(brightness)); |
109 paint.setImageFilter(grayscale); | 112 paint.setImageFilter(grayscale); |
110 canvas->drawRect(r, paint); | 113 canvas->drawRect(r, paint); |
111 } | 114 } |
112 } | 115 } |
113 | 116 |
114 private: | 117 private: |
115 typedef ColorFilterBaseBench INHERITED; | 118 typedef ColorFilterBaseBench INHERITED; |
116 }; | 119 }; |
117 | 120 |
118 class ColorFilterGrayBrightBench : public ColorFilterBaseBench { | 121 class ColorFilterGrayBrightBench : public ColorFilterBaseBench { |
119 | 122 |
120 public: | 123 public: |
121 ColorFilterGrayBrightBench(void* param, bool small) : INHERITED(param, small
) { | 124 ColorFilterGrayBrightBench(void* param, bool small) : INHERITED(param, small
) { |
122 } | 125 } |
123 | 126 |
124 protected: | 127 protected: |
125 virtual const char* onGetName() SK_OVERRIDE { | 128 virtual const char* onGetName() SK_OVERRIDE { |
126 return isSmall() ? "colorfilter_gray_bright_small" : "colorfilter_gray_b
right_large"; | 129 return isSmall() ? "colorfilter_gray_bright_small" : "colorfilter_gray_b
right_large"; |
127 } | 130 } |
128 | 131 |
129 virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { | 132 virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { |
130 SkRect r = getFilterRect(); | 133 SkRect r = getFilterRect(); |
131 SkPaint paint; | 134 SkPaint paint; |
132 paint.setColor(SK_ColorRED); | 135 paint.setColor(SK_ColorRED); |
133 { | 136 for (int i = 0; i < this->getLoops(); i++) { |
134 SkAutoTUnref<SkImageFilter> grayscale(make_grayscale()); | 137 SkAutoTUnref<SkImageFilter> grayscale(make_grayscale()); |
135 SkAutoTUnref<SkImageFilter> brightness(make_brightness(0.9f, graysca
le)); | 138 SkAutoTUnref<SkImageFilter> brightness(make_brightness(0.9f, graysca
le)); |
136 paint.setImageFilter(brightness); | 139 paint.setImageFilter(brightness); |
137 canvas->drawRect(r, paint); | 140 canvas->drawRect(r, paint); |
138 } | 141 } |
139 } | 142 } |
140 | 143 |
141 private: | 144 private: |
142 typedef ColorFilterBaseBench INHERITED; | 145 typedef ColorFilterBaseBench INHERITED; |
143 }; | 146 }; |
144 | 147 |
145 class ColorFilterBlueBrightBench : public ColorFilterBaseBench { | 148 class ColorFilterBlueBrightBench : public ColorFilterBaseBench { |
146 | 149 |
147 public: | 150 public: |
148 ColorFilterBlueBrightBench(void* param, bool small) : INHERITED(param, small
) { | 151 ColorFilterBlueBrightBench(void* param, bool small) : INHERITED(param, small
) { |
149 } | 152 } |
150 | 153 |
151 protected: | 154 protected: |
152 virtual const char* onGetName() SK_OVERRIDE { | 155 virtual const char* onGetName() SK_OVERRIDE { |
153 return isSmall() ? "colorfilter_blue_bright_small" : "colorfilter_blue_b
right_large"; | 156 return isSmall() ? "colorfilter_blue_bright_small" : "colorfilter_blue_b
right_large"; |
154 } | 157 } |
155 | 158 |
156 virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { | 159 virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { |
157 SkRect r = getFilterRect(); | 160 SkRect r = getFilterRect(); |
158 SkPaint paint; | 161 SkPaint paint; |
159 paint.setColor(SK_ColorRED); | 162 paint.setColor(SK_ColorRED); |
160 { | 163 for (int i = 0; i < this->getLoops(); i++) { |
161 SkAutoTUnref<SkImageFilter> blue(make_mode_blue()); | 164 SkAutoTUnref<SkImageFilter> blue(make_mode_blue()); |
162 SkAutoTUnref<SkImageFilter> brightness(make_brightness(1.0f, blue)); | 165 SkAutoTUnref<SkImageFilter> brightness(make_brightness(1.0f, blue)); |
163 paint.setImageFilter(brightness); | 166 paint.setImageFilter(brightness); |
164 canvas->drawRect(r, paint); | 167 canvas->drawRect(r, paint); |
165 } | 168 } |
166 } | 169 } |
167 | 170 |
168 private: | 171 private: |
169 typedef ColorFilterBaseBench INHERITED; | 172 typedef ColorFilterBaseBench INHERITED; |
170 }; | 173 }; |
171 | 174 |
172 class ColorFilterBrightBlueBench : public ColorFilterBaseBench { | 175 class ColorFilterBrightBlueBench : public ColorFilterBaseBench { |
173 | 176 |
174 public: | 177 public: |
175 ColorFilterBrightBlueBench(void* param, bool small) : INHERITED(param, small
) { | 178 ColorFilterBrightBlueBench(void* param, bool small) : INHERITED(param, small
) { |
176 } | 179 } |
177 | 180 |
178 protected: | 181 protected: |
179 virtual const char* onGetName() SK_OVERRIDE { | 182 virtual const char* onGetName() SK_OVERRIDE { |
180 return isSmall() ? "colorfilter_bright_blue_small" : "colorfilter_bright
_blue_large"; | 183 return isSmall() ? "colorfilter_bright_blue_small" : "colorfilter_bright
_blue_large"; |
181 } | 184 } |
182 | 185 |
183 virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { | 186 virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { |
184 SkRect r = getFilterRect(); | 187 SkRect r = getFilterRect(); |
185 SkPaint paint; | 188 SkPaint paint; |
186 paint.setColor(SK_ColorRED); | 189 paint.setColor(SK_ColorRED); |
187 { | 190 for (int i = 0; i < this->getLoops(); i++) { |
188 SkAutoTUnref<SkImageFilter> brightness(make_brightness(1.0f)); | 191 SkAutoTUnref<SkImageFilter> brightness(make_brightness(1.0f)); |
189 SkAutoTUnref<SkImageFilter> blue(make_mode_blue(brightness)); | 192 SkAutoTUnref<SkImageFilter> blue(make_mode_blue(brightness)); |
190 paint.setImageFilter(blue); | 193 paint.setImageFilter(blue); |
191 canvas->drawRect(r, paint); | 194 canvas->drawRect(r, paint); |
192 } | 195 } |
193 } | 196 } |
194 | 197 |
195 private: | 198 private: |
196 typedef ColorFilterBaseBench INHERITED; | 199 typedef ColorFilterBaseBench INHERITED; |
197 }; | 200 }; |
198 | 201 |
199 class ColorFilterBrightBench : public ColorFilterBaseBench { | 202 class ColorFilterBrightBench : public ColorFilterBaseBench { |
200 | 203 |
201 public: | 204 public: |
202 ColorFilterBrightBench(void* param, bool small) : INHERITED(param, small) { | 205 ColorFilterBrightBench(void* param, bool small) : INHERITED(param, small) { |
203 } | 206 } |
204 | 207 |
205 protected: | 208 protected: |
206 virtual const char* onGetName() SK_OVERRIDE { | 209 virtual const char* onGetName() SK_OVERRIDE { |
207 return isSmall() ? "colorfilter_bright_small" : "colorfilter_bright_larg
e"; | 210 return isSmall() ? "colorfilter_bright_small" : "colorfilter_bright_larg
e"; |
208 } | 211 } |
209 | 212 |
210 virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { | 213 virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { |
211 SkRect r = getFilterRect(); | 214 SkRect r = getFilterRect(); |
212 SkPaint paint; | 215 SkPaint paint; |
213 paint.setColor(SK_ColorRED); | 216 paint.setColor(SK_ColorRED); |
214 { | 217 for (int i = 0; i < this->getLoops(); i++) { |
215 SkAutoTUnref<SkImageFilter> brightness(make_brightness(1.0f)); | 218 SkAutoTUnref<SkImageFilter> brightness(make_brightness(1.0f)); |
216 paint.setImageFilter(brightness); | 219 paint.setImageFilter(brightness); |
217 canvas->drawRect(r, paint); | 220 canvas->drawRect(r, paint); |
218 } | 221 } |
219 } | 222 } |
220 | 223 |
221 private: | 224 private: |
222 typedef ColorFilterBaseBench INHERITED; | 225 typedef ColorFilterBaseBench INHERITED; |
223 }; | 226 }; |
224 | 227 |
225 class ColorFilterBlueBench : public ColorFilterBaseBench { | 228 class ColorFilterBlueBench : public ColorFilterBaseBench { |
226 | 229 |
227 public: | 230 public: |
228 ColorFilterBlueBench(void* param, bool small) : INHERITED(param, small) { | 231 ColorFilterBlueBench(void* param, bool small) : INHERITED(param, small) { |
229 } | 232 } |
230 | 233 |
231 protected: | 234 protected: |
232 virtual const char* onGetName() SK_OVERRIDE { | 235 virtual const char* onGetName() SK_OVERRIDE { |
233 return isSmall() ? "colorfilter_blue_small" : "colorfilter_blue_large"; | 236 return isSmall() ? "colorfilter_blue_small" : "colorfilter_blue_large"; |
234 } | 237 } |
235 | 238 |
236 virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { | 239 virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { |
237 SkRect r = getFilterRect(); | 240 SkRect r = getFilterRect(); |
238 SkPaint paint; | 241 SkPaint paint; |
239 paint.setColor(SK_ColorRED); | 242 paint.setColor(SK_ColorRED); |
240 { | 243 for (int i = 0; i < this->getLoops(); i++) { |
241 SkAutoTUnref<SkImageFilter> blue(make_mode_blue()); | 244 SkAutoTUnref<SkImageFilter> blue(make_mode_blue()); |
242 paint.setImageFilter(blue); | 245 paint.setImageFilter(blue); |
243 canvas->drawRect(r, paint); | 246 canvas->drawRect(r, paint); |
244 } | 247 } |
245 } | 248 } |
246 | 249 |
247 private: | 250 private: |
248 typedef ColorFilterBaseBench INHERITED; | 251 typedef ColorFilterBaseBench INHERITED; |
249 }; | 252 }; |
250 | 253 |
251 class ColorFilterGrayBench : public ColorFilterBaseBench { | 254 class ColorFilterGrayBench : public ColorFilterBaseBench { |
252 | 255 |
253 public: | 256 public: |
254 ColorFilterGrayBench(void* param, bool small) : INHERITED(param, small) { | 257 ColorFilterGrayBench(void* param, bool small) : INHERITED(param, small) { |
255 } | 258 } |
256 | 259 |
257 protected: | 260 protected: |
258 virtual const char* onGetName() SK_OVERRIDE { | 261 virtual const char* onGetName() SK_OVERRIDE { |
259 return isSmall() ? "colorfilter_gray_small" : "colorfilter_gray_large"; | 262 return isSmall() ? "colorfilter_gray_small" : "colorfilter_gray_large"; |
260 } | 263 } |
261 | 264 |
262 virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { | 265 virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { |
263 SkRect r = getFilterRect(); | 266 SkRect r = getFilterRect(); |
264 SkPaint paint; | 267 SkPaint paint; |
265 paint.setColor(SK_ColorRED); | 268 paint.setColor(SK_ColorRED); |
266 { | 269 for (int i = 0; i < this->getLoops(); i++) { |
267 SkAutoTUnref<SkImageFilter> grayscale(make_grayscale()); | 270 SkAutoTUnref<SkImageFilter> grayscale(make_grayscale()); |
268 paint.setImageFilter(grayscale); | 271 paint.setImageFilter(grayscale); |
269 canvas->drawRect(r, paint); | 272 canvas->drawRect(r, paint); |
270 } | 273 } |
271 } | 274 } |
272 | 275 |
273 private: | 276 private: |
274 typedef ColorFilterBaseBench INHERITED; | 277 typedef ColorFilterBaseBench INHERITED; |
275 }; | 278 }; |
276 | 279 |
277 class TableColorFilterBench : public ColorFilterBaseBench { | 280 class TableColorFilterBench : public ColorFilterBaseBench { |
278 | 281 |
279 public: | 282 public: |
280 TableColorFilterBench(void* param, bool small) : INHERITED(param, small) { | 283 TableColorFilterBench(void* param, bool small) : INHERITED(param, small) { |
281 } | 284 } |
282 | 285 |
283 protected: | 286 protected: |
284 virtual const char* onGetName() SK_OVERRIDE { | 287 virtual const char* onGetName() SK_OVERRIDE { |
285 return isSmall() ? "table_colorfilter_small" : "table_colorfilter_large"
; | 288 return isSmall() ? "table_colorfilter_small" : "table_colorfilter_large"
; |
286 } | 289 } |
287 | 290 |
288 virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { | 291 virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { |
289 SkRect r = getFilterRect(); | 292 SkRect r = getFilterRect(); |
290 SkPaint paint; | 293 SkPaint paint; |
291 paint.setColor(SK_ColorRED); | 294 paint.setColor(SK_ColorRED); |
292 { | 295 for (int i = 0; i < this->getLoops(); i++) { |
293 SkAutoTUnref<SkColorFilter> table_filter(make_table_filter()); | 296 SkAutoTUnref<SkColorFilter> table_filter(make_table_filter()); |
294 paint.setColorFilter(table_filter); | 297 paint.setColorFilter(table_filter); |
295 canvas->drawRect(r, paint); | 298 canvas->drawRect(r, paint); |
296 } | 299 } |
297 } | 300 } |
298 | 301 |
299 private: | 302 private: |
300 static void fill_table_data(uint8_t table[]) { | 303 static void fill_table_data(uint8_t table[]) { |
301 for (int i = 0; i < 256; ++i) { | 304 for (int i = 0; i < 256; ++i) { |
302 int n = i >> 5; | 305 int n = i >> 5; |
(...skipping 23 matching lines...) Expand all Loading... |
326 | 329 |
327 DEF_BENCH( return new ColorFilterDimBrightBench(p, false); ) | 330 DEF_BENCH( return new ColorFilterDimBrightBench(p, false); ) |
328 DEF_BENCH( return new ColorFilterBrightGrayBench(p, false); ) | 331 DEF_BENCH( return new ColorFilterBrightGrayBench(p, false); ) |
329 DEF_BENCH( return new ColorFilterGrayBrightBench(p, false); ) | 332 DEF_BENCH( return new ColorFilterGrayBrightBench(p, false); ) |
330 DEF_BENCH( return new ColorFilterBlueBrightBench(p, false); ) | 333 DEF_BENCH( return new ColorFilterBlueBrightBench(p, false); ) |
331 DEF_BENCH( return new ColorFilterBrightBlueBench(p, false); ) | 334 DEF_BENCH( return new ColorFilterBrightBlueBench(p, false); ) |
332 DEF_BENCH( return new ColorFilterBrightBench(p, false); ) | 335 DEF_BENCH( return new ColorFilterBrightBench(p, false); ) |
333 DEF_BENCH( return new ColorFilterBlueBench(p, false); ) | 336 DEF_BENCH( return new ColorFilterBlueBench(p, false); ) |
334 DEF_BENCH( return new ColorFilterGrayBench(p, false); ) | 337 DEF_BENCH( return new ColorFilterGrayBench(p, false); ) |
335 DEF_BENCH( return new TableColorFilterBench(p, false); ) | 338 DEF_BENCH( return new TableColorFilterBench(p, false); ) |
OLD | NEW |