OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2011 Google Inc. | 3 * Copyright 2011 Google Inc. |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 #include "SkBenchmark.h" | 8 #include "Benchmark.h" |
9 #include "SkBitmap.h" | 9 #include "SkBitmap.h" |
10 #include "SkCanvas.h" | 10 #include "SkCanvas.h" |
11 #include "SkColorPriv.h" | 11 #include "SkColorPriv.h" |
12 #include "SkGradientShader.h" | 12 #include "SkGradientShader.h" |
13 #include "SkPaint.h" | 13 #include "SkPaint.h" |
14 #include "SkShader.h" | 14 #include "SkShader.h" |
15 #include "SkString.h" | 15 #include "SkString.h" |
16 | 16 |
17 struct GradData { | 17 struct GradData { |
18 int fCount; | 18 int fCount; |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
190 case kOval_GeomType: | 190 case kOval_GeomType: |
191 return "oval"; | 191 return "oval"; |
192 default: | 192 default: |
193 SkDEBUGFAIL("unknown geometry type"); | 193 SkDEBUGFAIL("unknown geometry type"); |
194 return "error"; | 194 return "error"; |
195 } | 195 } |
196 } | 196 } |
197 | 197 |
198 /////////////////////////////////////////////////////////////////////////////// | 198 /////////////////////////////////////////////////////////////////////////////// |
199 | 199 |
200 class GradientBench : public SkBenchmark { | 200 class GradientBench : public Benchmark { |
201 SkString fName; | 201 SkString fName; |
202 SkShader* fShader; | 202 SkShader* fShader; |
203 enum { | 203 enum { |
204 W = 400, | 204 W = 400, |
205 H = 400, | 205 H = 400, |
206 kRepeat = 15, | 206 kRepeat = 15, |
207 }; | 207 }; |
208 public: | 208 public: |
209 GradientBench(GradType gradType, | 209 GradientBench(GradType gradType, |
210 GradData data = gGradData[0], | 210 GradData data = gGradData[0], |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
255 canvas->drawRect(r, paint); | 255 canvas->drawRect(r, paint); |
256 break; | 256 break; |
257 case kOval_GeomType: | 257 case kOval_GeomType: |
258 canvas->drawOval(r, paint); | 258 canvas->drawOval(r, paint); |
259 break; | 259 break; |
260 } | 260 } |
261 } | 261 } |
262 } | 262 } |
263 | 263 |
264 private: | 264 private: |
265 typedef SkBenchmark INHERITED; | 265 typedef Benchmark INHERITED; |
266 | 266 |
267 GeomType fGeomType; | 267 GeomType fGeomType; |
268 }; | 268 }; |
269 | 269 |
270 DEF_BENCH( return new GradientBench(kLinear_GradType); ) | 270 DEF_BENCH( return new GradientBench(kLinear_GradType); ) |
271 DEF_BENCH( return new GradientBench(kLinear_GradType, gGradData[1]); ) | 271 DEF_BENCH( return new GradientBench(kLinear_GradType, gGradData[1]); ) |
272 DEF_BENCH( return new GradientBench(kLinear_GradType, gGradData[2]); ) | 272 DEF_BENCH( return new GradientBench(kLinear_GradType, gGradData[2]); ) |
273 DEF_BENCH( return new GradientBench(kLinear_GradType, gGradData[0], SkShader::kM
irror_TileMode); ) | 273 DEF_BENCH( return new GradientBench(kLinear_GradType, gGradData[0], SkShader::kM
irror_TileMode); ) |
274 | 274 |
275 DEF_BENCH( return new GradientBench(kRadial_GradType, gGradData[0]); ) | 275 DEF_BENCH( return new GradientBench(kRadial_GradType, gGradData[0]); ) |
(...skipping 23 matching lines...) Expand all Loading... |
299 DEF_BENCH( return new GradientBench(kConicalZero_GradType, gGradData[2]); ) | 299 DEF_BENCH( return new GradientBench(kConicalZero_GradType, gGradData[2]); ) |
300 DEF_BENCH( return new GradientBench(kConicalOut_GradType); ) | 300 DEF_BENCH( return new GradientBench(kConicalOut_GradType); ) |
301 DEF_BENCH( return new GradientBench(kConicalOut_GradType, gGradData[1]); ) | 301 DEF_BENCH( return new GradientBench(kConicalOut_GradType, gGradData[1]); ) |
302 DEF_BENCH( return new GradientBench(kConicalOut_GradType, gGradData[2]); ) | 302 DEF_BENCH( return new GradientBench(kConicalOut_GradType, gGradData[2]); ) |
303 DEF_BENCH( return new GradientBench(kConicalOutZero_GradType); ) | 303 DEF_BENCH( return new GradientBench(kConicalOutZero_GradType); ) |
304 DEF_BENCH( return new GradientBench(kConicalOutZero_GradType, gGradData[1]); ) | 304 DEF_BENCH( return new GradientBench(kConicalOutZero_GradType, gGradData[1]); ) |
305 DEF_BENCH( return new GradientBench(kConicalOutZero_GradType, gGradData[2]); ) | 305 DEF_BENCH( return new GradientBench(kConicalOutZero_GradType, gGradData[2]); ) |
306 | 306 |
307 /////////////////////////////////////////////////////////////////////////////// | 307 /////////////////////////////////////////////////////////////////////////////// |
308 | 308 |
309 class Gradient2Bench : public SkBenchmark { | 309 class Gradient2Bench : public Benchmark { |
310 SkString fName; | 310 SkString fName; |
311 bool fHasAlpha; | 311 bool fHasAlpha; |
312 | 312 |
313 public: | 313 public: |
314 Gradient2Bench(bool hasAlpha) { | 314 Gradient2Bench(bool hasAlpha) { |
315 fName.printf("gradient_create_%s", hasAlpha ? "alpha" : "opaque"); | 315 fName.printf("gradient_create_%s", hasAlpha ? "alpha" : "opaque"); |
316 fHasAlpha = hasAlpha; | 316 fHasAlpha = hasAlpha; |
317 } | 317 } |
318 | 318 |
319 protected: | 319 protected: |
(...skipping 20 matching lines...) Expand all Loading... |
340 SK_ColorWHITE }; | 340 SK_ColorWHITE }; |
341 SkShader* s = SkGradientShader::CreateLinear(pts, colors, NULL, | 341 SkShader* s = SkGradientShader::CreateLinear(pts, colors, NULL, |
342 SK_ARRAY_COUNT(colors), | 342 SK_ARRAY_COUNT(colors), |
343 SkShader::kClamp_TileMo
de); | 343 SkShader::kClamp_TileMo
de); |
344 paint.setShader(s)->unref(); | 344 paint.setShader(s)->unref(); |
345 canvas->drawRect(r, paint); | 345 canvas->drawRect(r, paint); |
346 } | 346 } |
347 } | 347 } |
348 | 348 |
349 private: | 349 private: |
350 typedef SkBenchmark INHERITED; | 350 typedef Benchmark INHERITED; |
351 }; | 351 }; |
352 | 352 |
353 DEF_BENCH( return new Gradient2Bench(false); ) | 353 DEF_BENCH( return new Gradient2Bench(false); ) |
354 DEF_BENCH( return new Gradient2Bench(true); ) | 354 DEF_BENCH( return new Gradient2Bench(true); ) |
OLD | NEW |