| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2012 Google Inc. | 2 * Copyright 2012 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 #include "SkBenchmark.h" | 8 #include "Benchmark.h" |
| 9 #include "SkCanvas.h" | 9 #include "SkCanvas.h" |
| 10 #include "SkMorphologyImageFilter.h" |
| 10 #include "SkPaint.h" | 11 #include "SkPaint.h" |
| 11 #include "SkRandom.h" | 12 #include "SkRandom.h" |
| 12 #include "SkShader.h" | 13 #include "SkShader.h" |
| 13 #include "SkString.h" | 14 #include "SkString.h" |
| 14 #include "SkMorphologyImageFilter.h" | |
| 15 | 15 |
| 16 #define SMALL SkIntToScalar(2) | 16 #define SMALL SkIntToScalar(2) |
| 17 #define REAL 1.5f | 17 #define REAL 1.5f |
| 18 #define BIG SkIntToScalar(10) | 18 #define BIG SkIntToScalar(10) |
| 19 | 19 |
| 20 enum MorphologyType { | 20 enum MorphologyType { |
| 21 kErode_MT, | 21 kErode_MT, |
| 22 kDilate_MT | 22 kDilate_MT |
| 23 }; | 23 }; |
| 24 | 24 |
| 25 static const char* gStyleName[] = { | 25 static const char* gStyleName[] = { |
| 26 "erode", | 26 "erode", |
| 27 "dilate" | 27 "dilate" |
| 28 }; | 28 }; |
| 29 | 29 |
| 30 class MorphologyBench : public SkBenchmark { | 30 class MorphologyBench : public Benchmark { |
| 31 SkScalar fRadius; | 31 SkScalar fRadius; |
| 32 MorphologyType fStyle; | 32 MorphologyType fStyle; |
| 33 SkString fName; | 33 SkString fName; |
| 34 | 34 |
| 35 public: | 35 public: |
| 36 MorphologyBench(SkScalar rad, MorphologyType style) | 36 MorphologyBench(SkScalar rad, MorphologyType style) |
| 37 { | 37 { |
| 38 fRadius = rad; | 38 fRadius = rad; |
| 39 fStyle = style; | 39 fStyle = style; |
| 40 const char* name = rad > 0 ? gStyleName[style] : "none"; | 40 const char* name = rad > 0 ? gStyleName[style] : "none"; |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 74 SkScalarFloorToInt(fRadius))
; | 74 SkScalarFloorToInt(fRadius))
; |
| 75 break; | 75 break; |
| 76 } | 76 } |
| 77 paint.setImageFilter(mf)->unref(); | 77 paint.setImageFilter(mf)->unref(); |
| 78 } | 78 } |
| 79 canvas->drawOval(r, paint); | 79 canvas->drawOval(r, paint); |
| 80 } | 80 } |
| 81 } | 81 } |
| 82 | 82 |
| 83 private: | 83 private: |
| 84 typedef SkBenchmark INHERITED; | 84 typedef Benchmark INHERITED; |
| 85 }; | 85 }; |
| 86 | 86 |
| 87 DEF_BENCH( return new MorphologyBench(SMALL, kErode_MT); ) | 87 DEF_BENCH( return new MorphologyBench(SMALL, kErode_MT); ) |
| 88 DEF_BENCH( return new MorphologyBench(SMALL, kDilate_MT); ) | 88 DEF_BENCH( return new MorphologyBench(SMALL, kDilate_MT); ) |
| 89 | 89 |
| 90 DEF_BENCH( return new MorphologyBench(BIG, kErode_MT); ) | 90 DEF_BENCH( return new MorphologyBench(BIG, kErode_MT); ) |
| 91 DEF_BENCH( return new MorphologyBench(BIG, kDilate_MT); ) | 91 DEF_BENCH( return new MorphologyBench(BIG, kDilate_MT); ) |
| 92 | 92 |
| 93 DEF_BENCH( return new MorphologyBench(REAL, kErode_MT); ) | 93 DEF_BENCH( return new MorphologyBench(REAL, kErode_MT); ) |
| 94 DEF_BENCH( return new MorphologyBench(REAL, kDilate_MT); ) | 94 DEF_BENCH( return new MorphologyBench(REAL, kDilate_MT); ) |
| 95 | 95 |
| 96 DEF_BENCH( return new MorphologyBench(0, kErode_MT); ) | 96 DEF_BENCH( return new MorphologyBench(0, kErode_MT); ) |
| OLD | NEW |