OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2014 Google Inc. | 2 * Copyright 2014 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 #include "SkGeometry.h" | 9 #include "SkGeometry.h" |
10 #include "SkRandom.h" | 10 #include "SkRandom.h" |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
125 }; | 125 }; |
126 | 126 |
127 DEF_BENCH( return new GeoRectBench_intersect; ) | 127 DEF_BENCH( return new GeoRectBench_intersect; ) |
128 DEF_BENCH( return new GeoRectBench_intersect_rect; ) | 128 DEF_BENCH( return new GeoRectBench_intersect_rect; ) |
129 DEF_BENCH( return new GeoRectBench_Intersects; ) | 129 DEF_BENCH( return new GeoRectBench_Intersects; ) |
130 | 130 |
131 DEF_BENCH( return new GeoRectBench_sort; ) | 131 DEF_BENCH( return new GeoRectBench_sort; ) |
132 | 132 |
133 ////////////////////////////////////////////////////////////////////////////////
/////////////////// | 133 ////////////////////////////////////////////////////////////////////////////////
/////////////////// |
134 | 134 |
135 class EvalQuadAt0 : public GeometryBench { | 135 class QuadBenchBase : public GeometryBench { |
| 136 protected: |
136 SkPoint fPts[3]; | 137 SkPoint fPts[3]; |
137 public: | 138 public: |
138 EvalQuadAt0() : GeometryBench("evalquadat0") { | 139 QuadBenchBase(const char name[]) : GeometryBench(name) { |
139 SkRandom rand; | 140 SkRandom rand; |
140 for (int i = 0; i < 3; ++i) { | 141 for (int i = 0; i < 3; ++i) { |
141 fPts[i].set(rand.nextUScalar1(), rand.nextUScalar1()); | 142 fPts[i].set(rand.nextUScalar1(), rand.nextUScalar1()); |
142 } | 143 } |
143 } | 144 } |
144 | 145 }; |
| 146 |
| 147 class EvalQuadAt0 : public QuadBenchBase { |
| 148 public: |
| 149 EvalQuadAt0() : QuadBenchBase("evalquadat0") {} |
145 protected: | 150 protected: |
146 void onDraw(const int loops, SkCanvas* canvas) SK_OVERRIDE { | 151 void onDraw(const int loops, SkCanvas* canvas) SK_OVERRIDE { |
147 SkPoint result; | 152 SkPoint result; |
148 for (int outer = 0; outer < loops; ++outer) { | 153 for (int outer = 0; outer < loops; ++outer) { |
149 for (int i = 0; i < 10000; ++i) { | 154 SkEvalQuadAt(fPts, 0.5f, &result); |
150 SkEvalQuadAt(fPts, 0.5f, &result); | 155 SkEvalQuadAt(fPts, 0.5f, &result); |
151 } | 156 SkEvalQuadAt(fPts, 0.5f, &result); |
| 157 SkEvalQuadAt(fPts, 0.5f, &result); |
152 } | 158 } |
153 } | 159 } |
154 }; | 160 }; |
155 DEF_BENCH( return new EvalQuadAt0; ) | 161 DEF_BENCH( return new EvalQuadAt0; ) |
156 | 162 |
157 class EvalQuadAt1 : public GeometryBench { | 163 class EvalQuadAt1 : public QuadBenchBase { |
158 SkPoint fPts[3]; | |
159 public: | 164 public: |
160 EvalQuadAt1() : GeometryBench("evalquadat1") { | 165 EvalQuadAt1() : QuadBenchBase("evalquadat1") {} |
161 SkRandom rand; | |
162 for (int i = 0; i < 3; ++i) { | |
163 fPts[i].set(rand.nextUScalar1(), rand.nextUScalar1()); | |
164 } | |
165 } | |
166 | |
167 protected: | 166 protected: |
168 void onDraw(const int loops, SkCanvas* canvas) SK_OVERRIDE { | 167 void onDraw(const int loops, SkCanvas* canvas) SK_OVERRIDE { |
| 168 SkPoint result; |
169 for (int outer = 0; outer < loops; ++outer) { | 169 for (int outer = 0; outer < loops; ++outer) { |
170 for (int i = 0; i < 10000; ++i) { | 170 result = SkEvalQuadAt(fPts, 0.5f); |
171 SkEvalQuadAt(fPts, 0.5f); | 171 result = SkEvalQuadAt(fPts, 0.5f); |
172 } | 172 result = SkEvalQuadAt(fPts, 0.5f); |
| 173 result = SkEvalQuadAt(fPts, 0.5f); |
173 } | 174 } |
174 } | 175 } |
175 }; | 176 }; |
176 DEF_BENCH( return new EvalQuadAt1; ) | 177 DEF_BENCH( return new EvalQuadAt1; ) |
177 | 178 |
| 179 //////// |
| 180 |
| 181 class EvalQuadTangentAt0 : public QuadBenchBase { |
| 182 public: |
| 183 EvalQuadTangentAt0() : QuadBenchBase("evalquadtangentat0") {} |
| 184 protected: |
| 185 void onDraw(const int loops, SkCanvas* canvas) SK_OVERRIDE { |
| 186 SkPoint result; |
| 187 for (int outer = 0; outer < loops; ++outer) { |
| 188 SkEvalQuadAt(fPts, 0.5f, NULL, &result); |
| 189 SkEvalQuadAt(fPts, 0.5f, NULL, &result); |
| 190 SkEvalQuadAt(fPts, 0.5f, NULL, &result); |
| 191 SkEvalQuadAt(fPts, 0.5f, NULL, &result); |
| 192 } |
| 193 } |
| 194 }; |
| 195 DEF_BENCH( return new EvalQuadTangentAt0; ) |
| 196 |
| 197 class EvalQuadTangentAt1 : public QuadBenchBase { |
| 198 public: |
| 199 EvalQuadTangentAt1() : QuadBenchBase("evalquadtangentat1") {} |
| 200 protected: |
| 201 void onDraw(const int loops, SkCanvas* canvas) SK_OVERRIDE { |
| 202 SkPoint result; |
| 203 for (int outer = 0; outer < loops; ++outer) { |
| 204 result = SkEvalQuadTangentAt(fPts, 0.5f); |
| 205 result = SkEvalQuadTangentAt(fPts, 0.5f); |
| 206 result = SkEvalQuadTangentAt(fPts, 0.5f); |
| 207 result = SkEvalQuadTangentAt(fPts, 0.5f); |
| 208 } |
| 209 } |
| 210 }; |
| 211 DEF_BENCH( return new EvalQuadTangentAt1; ) |
| 212 |
| 213 //////// |
| 214 |
| 215 class ChopQuadAt0 : public QuadBenchBase { |
| 216 public: |
| 217 ChopQuadAt0() : QuadBenchBase("chopquadat0") {} |
| 218 protected: |
| 219 void onDraw(const int loops, SkCanvas* canvas) SK_OVERRIDE { |
| 220 SkPoint dst[5]; |
| 221 for (int outer = 0; outer < loops; ++outer) { |
| 222 SkChopQuadAt(fPts, dst, 0.5f); |
| 223 SkChopQuadAt(fPts, dst, 0.5f); |
| 224 SkChopQuadAt(fPts, dst, 0.5f); |
| 225 SkChopQuadAt(fPts, dst, 0.5f); |
| 226 } |
| 227 } |
| 228 }; |
| 229 DEF_BENCH( return new ChopQuadAt0; ) |
| 230 |
| 231 class ChopQuadAt1 : public QuadBenchBase { |
| 232 public: |
| 233 ChopQuadAt1() : QuadBenchBase("chopquadat1") {} |
| 234 protected: |
| 235 void onDraw(const int loops, SkCanvas* canvas) SK_OVERRIDE { |
| 236 SkPoint dst[5]; |
| 237 for (int outer = 0; outer < loops; ++outer) { |
| 238 SkChopQuadAt2(fPts, dst, 0.5f); |
| 239 SkChopQuadAt2(fPts, dst, 0.5f); |
| 240 SkChopQuadAt2(fPts, dst, 0.5f); |
| 241 SkChopQuadAt2(fPts, dst, 0.5f); |
| 242 } |
| 243 } |
| 244 }; |
| 245 DEF_BENCH( return new ChopQuadAt1; ) |
| 246 |
OLD | NEW |