Chromium Code Reviews| 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); | |
|
mtklein
2015/03/20 11:39:48
Is this intentional, comparing SkEvalQuadTangentAt
reed1
2015/03/20 12:32:03
The NULL is the quad position parameter, the next
| |
| 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 |