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 "SkBenchmark.h" |
9 #include "SkBitmap.h" | 9 #include "SkBitmap.h" |
10 #include "SkCanvas.h" | 10 #include "SkCanvas.h" |
(...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
320 PathCreateBench() { | 320 PathCreateBench() { |
321 } | 321 } |
322 | 322 |
323 protected: | 323 protected: |
324 virtual const char* onGetName() SK_OVERRIDE { | 324 virtual const char* onGetName() SK_OVERRIDE { |
325 return "path_create"; | 325 return "path_create"; |
326 } | 326 } |
327 | 327 |
328 virtual void onPreDraw() SK_OVERRIDE { | 328 virtual void onPreDraw() SK_OVERRIDE { |
329 this->createData(10, 100); | 329 this->createData(10, 100); |
330 fPaths.reset(kPathCnt); | |
331 } | 330 } |
332 | 331 |
333 virtual void onDraw(const int loops, SkCanvas*) SK_OVERRIDE { | 332 virtual void onDraw(const int loops, SkCanvas*) SK_OVERRIDE { |
334 for (int i = 0; i < loops; ++i) { | 333 for (int i = 0; i < loops; ++i) { |
335 this->makePath(&fPaths[i & (kPathCnt - 1)]); | 334 if (i % 1000 == 0) { |
| 335 fPath.reset(); // PathRef memory can grow without bound otherwi
se. |
| 336 } |
| 337 this->makePath(&fPath); |
336 } | 338 } |
337 this->restartMakingPaths(); | 339 this->restartMakingPaths(); |
338 } | 340 } |
339 | 341 |
340 virtual void onPostDraw() SK_OVERRIDE { | 342 virtual void onPostDraw() SK_OVERRIDE { |
341 this->finishedMakingPaths(); | 343 this->finishedMakingPaths(); |
342 fPaths.reset(0); | |
343 } | 344 } |
344 | 345 |
345 private: | 346 private: |
346 enum { | 347 SkPath fPath; |
347 // must be a pow 2 | |
348 kPathCnt = 1 << 5, | |
349 }; | |
350 SkAutoTArray<SkPath> fPaths; | |
351 | 348 |
352 typedef RandomPathBench INHERITED; | 349 typedef RandomPathBench INHERITED; |
353 }; | 350 }; |
354 | 351 |
355 class PathCopyBench : public RandomPathBench { | 352 class PathCopyBench : public RandomPathBench { |
356 public: | 353 public: |
357 PathCopyBench() { | 354 PathCopyBench() { |
358 } | 355 } |
359 | 356 |
360 protected: | 357 protected: |
(...skipping 679 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1040 DEF_BENCH( return new ArbRoundRectBench(true); ) | 1037 DEF_BENCH( return new ArbRoundRectBench(true); ) |
1041 DEF_BENCH( return new ConservativelyContainsBench(ConservativelyContainsBench::k
Rect_Type); ) | 1038 DEF_BENCH( return new ConservativelyContainsBench(ConservativelyContainsBench::k
Rect_Type); ) |
1042 DEF_BENCH( return new ConservativelyContainsBench(ConservativelyContainsBench::k
RoundRect_Type); ) | 1039 DEF_BENCH( return new ConservativelyContainsBench(ConservativelyContainsBench::k
RoundRect_Type); ) |
1043 DEF_BENCH( return new ConservativelyContainsBench(ConservativelyContainsBench::k
Oval_Type); ) | 1040 DEF_BENCH( return new ConservativelyContainsBench(ConservativelyContainsBench::k
Oval_Type); ) |
1044 | 1041 |
1045 DEF_BENCH( return new ConicBench_Chop5() ) | 1042 DEF_BENCH( return new ConicBench_Chop5() ) |
1046 DEF_BENCH( return new ConicBench_ChopHalf() ) | 1043 DEF_BENCH( return new ConicBench_ChopHalf() ) |
1047 DEF_BENCH( return new ConicBench_ComputeError() ) | 1044 DEF_BENCH( return new ConicBench_ComputeError() ) |
1048 DEF_BENCH( return new ConicBench_asQuadTol() ) | 1045 DEF_BENCH( return new ConicBench_asQuadTol() ) |
1049 DEF_BENCH( return new ConicBench_quadPow2() ) | 1046 DEF_BENCH( return new ConicBench_quadPow2() ) |
OLD | NEW |