OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright 2016 Google Inc. | 2 * Copyright 2016 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 "Benchmark.h" | 8 #include "Benchmark.h" |
9 | 9 |
10 #include "SkCanvas.h" | 10 #include "SkCanvas.h" |
(...skipping 10 matching lines...) Expand all Loading... | |
21 case SkShader::kRepeat_TileMode: | 21 case SkShader::kRepeat_TileMode: |
22 return "repeat"; | 22 return "repeat"; |
23 case SkShader::kMirror_TileMode: | 23 case SkShader::kMirror_TileMode: |
24 return "mirror"; | 24 return "mirror"; |
25 default: | 25 default: |
26 SkDEBUGFAIL("Unknown tilemode"); | 26 SkDEBUGFAIL("Unknown tilemode"); |
27 return "error"; | 27 return "error"; |
28 } | 28 } |
29 } | 29 } |
30 | 30 |
31 class HardStopGradientBench : public Benchmark { | 31 class HardStopGradientBench_ScaleNumColors : public Benchmark { |
32 public: | 32 public: |
33 HardStopGradientBench(SkShader::TileMode tilemode, int count) { | 33 HardStopGradientBench_ScaleNumColors(SkShader::TileMode tilemode, int count) { |
34 fName.printf("hardstop_%s_%03d_colors", get_tilemode_name(tilemode), cou nt); | 34 fName.printf("hardstop_scale_num_colors_%s_%03d_colors", get_tilemode_na me(tilemode), count); |
35 | 35 |
36 fTileMode = tilemode; | 36 fTileMode = tilemode; |
37 fColorCount = count; | 37 fColorCount = count; |
38 } | 38 } |
39 | 39 |
40 const char* onGetName() override { | 40 const char* onGetName() override { |
41 return fName.c_str(); | 41 return fName.c_str(); |
42 } | 42 } |
43 | 43 |
44 SkIPoint onGetSize() override { | 44 SkIPoint onGetSize() override { |
45 return SkIPoint::Make(kSize, kSize); | 45 return SkIPoint::Make(kSize, kSize); |
46 } | 46 } |
47 | 47 |
48 /* | |
49 * Set up a linear gradient from left to right with | |
50 * fColorCount "evenly spaced" colors. The positions | |
51 * are also evenly spaced, with the exception of the | |
52 * first two, which create a hard stop in order to | |
53 * trigger the hard stop code. | |
tomhudson
2016/07/26 13:25:14
Nit: runon sentence?
| |
54 */ | |
48 void onPreDraw(SkCanvas* canvas) override { | 55 void onPreDraw(SkCanvas* canvas) override { |
49 // Left to right | 56 // Left to right |
50 SkPoint points[2] = { | 57 SkPoint points[2] = { |
51 SkPoint::Make(0, kSize/2), | 58 SkPoint::Make(0, kSize/2), |
52 SkPoint::Make(kSize-1, kSize/2), | 59 SkPoint::Make(kSize-1, kSize/2), |
53 }; | 60 }; |
54 | 61 |
55 // "Evenly spaced" colors | 62 // "Evenly spaced" colors |
56 SkColor colors[100]; | 63 SkColor colors[100]; |
57 for (int i = 0; i < fColorCount; i++) { | 64 for (int i = 0; i < fColorCount; i++) { |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
90 | 97 |
91 SkShader::TileMode fTileMode; | 98 SkShader::TileMode fTileMode; |
92 SkString fName; | 99 SkString fName; |
93 int fColorCount; | 100 int fColorCount; |
94 SkPaint fPaint; | 101 SkPaint fPaint; |
95 | 102 |
96 typedef Benchmark INHERITED; | 103 typedef Benchmark INHERITED; |
97 }; | 104 }; |
98 | 105 |
99 // Clamp | 106 // Clamp |
100 DEF_BENCH(return new HardStopGradientBench(SkShader::kClamp_TileMode, 3);) | 107 DEF_BENCH(return new HardStopGradientBench_ScaleNumColors(SkShader::kClamp_TileM ode, 3);) |
101 DEF_BENCH(return new HardStopGradientBench(SkShader::kClamp_TileMode, 4);) | 108 DEF_BENCH(return new HardStopGradientBench_ScaleNumColors(SkShader::kClamp_TileM ode, 4);) |
102 DEF_BENCH(return new HardStopGradientBench(SkShader::kClamp_TileMode, 5);) | 109 DEF_BENCH(return new HardStopGradientBench_ScaleNumColors(SkShader::kClamp_TileM ode, 5);) |
103 DEF_BENCH(return new HardStopGradientBench(SkShader::kClamp_TileMode, 10);) | 110 DEF_BENCH(return new HardStopGradientBench_ScaleNumColors(SkShader::kClamp_TileM ode, 10);) |
104 DEF_BENCH(return new HardStopGradientBench(SkShader::kClamp_TileMode, 25);) | 111 DEF_BENCH(return new HardStopGradientBench_ScaleNumColors(SkShader::kClamp_TileM ode, 25);) |
105 DEF_BENCH(return new HardStopGradientBench(SkShader::kClamp_TileMode, 50);) | 112 DEF_BENCH(return new HardStopGradientBench_ScaleNumColors(SkShader::kClamp_TileM ode, 50);) |
106 DEF_BENCH(return new HardStopGradientBench(SkShader::kClamp_TileMode, 100);) | 113 DEF_BENCH(return new HardStopGradientBench_ScaleNumColors(SkShader::kClamp_TileM ode, 100);) |
107 | 114 |
108 // Repeat | 115 // Repeat |
109 DEF_BENCH(return new HardStopGradientBench(SkShader::kRepeat_TileMode, 3);) | 116 DEF_BENCH(return new HardStopGradientBench_ScaleNumColors(SkShader::kRepeat_Tile Mode, 3);) |
110 DEF_BENCH(return new HardStopGradientBench(SkShader::kRepeat_TileMode, 4);) | 117 DEF_BENCH(return new HardStopGradientBench_ScaleNumColors(SkShader::kRepeat_Tile Mode, 4);) |
111 DEF_BENCH(return new HardStopGradientBench(SkShader::kRepeat_TileMode, 5);) | 118 DEF_BENCH(return new HardStopGradientBench_ScaleNumColors(SkShader::kRepeat_Tile Mode, 5);) |
112 DEF_BENCH(return new HardStopGradientBench(SkShader::kRepeat_TileMode, 10);) | 119 DEF_BENCH(return new HardStopGradientBench_ScaleNumColors(SkShader::kRepeat_Tile Mode, 10);) |
113 DEF_BENCH(return new HardStopGradientBench(SkShader::kRepeat_TileMode, 25);) | 120 DEF_BENCH(return new HardStopGradientBench_ScaleNumColors(SkShader::kRepeat_Tile Mode, 25);) |
114 DEF_BENCH(return new HardStopGradientBench(SkShader::kRepeat_TileMode, 50);) | 121 DEF_BENCH(return new HardStopGradientBench_ScaleNumColors(SkShader::kRepeat_Tile Mode, 50);) |
115 DEF_BENCH(return new HardStopGradientBench(SkShader::kRepeat_TileMode, 100);) | 122 DEF_BENCH(return new HardStopGradientBench_ScaleNumColors(SkShader::kRepeat_Tile Mode, 100);) |
116 | 123 |
117 // Mirror | 124 // Mirror |
118 DEF_BENCH(return new HardStopGradientBench(SkShader::kMirror_TileMode, 3);) | 125 DEF_BENCH(return new HardStopGradientBench_ScaleNumColors(SkShader::kMirror_Tile Mode, 3);) |
119 DEF_BENCH(return new HardStopGradientBench(SkShader::kMirror_TileMode, 4);) | 126 DEF_BENCH(return new HardStopGradientBench_ScaleNumColors(SkShader::kMirror_Tile Mode, 4);) |
120 DEF_BENCH(return new HardStopGradientBench(SkShader::kMirror_TileMode, 5);) | 127 DEF_BENCH(return new HardStopGradientBench_ScaleNumColors(SkShader::kMirror_Tile Mode, 5);) |
121 DEF_BENCH(return new HardStopGradientBench(SkShader::kMirror_TileMode, 10);) | 128 DEF_BENCH(return new HardStopGradientBench_ScaleNumColors(SkShader::kMirror_Tile Mode, 10);) |
122 DEF_BENCH(return new HardStopGradientBench(SkShader::kMirror_TileMode, 25);) | 129 DEF_BENCH(return new HardStopGradientBench_ScaleNumColors(SkShader::kMirror_Tile Mode, 25);) |
123 DEF_BENCH(return new HardStopGradientBench(SkShader::kMirror_TileMode, 50);) | 130 DEF_BENCH(return new HardStopGradientBench_ScaleNumColors(SkShader::kMirror_Tile Mode, 50);) |
124 DEF_BENCH(return new HardStopGradientBench(SkShader::kMirror_TileMode, 100);) | 131 DEF_BENCH(return new HardStopGradientBench_ScaleNumColors(SkShader::kMirror_Tile Mode, 100);) |
OLD | NEW |