Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(107)

Side by Side Diff: bench/PathBench.cpp

Issue 329853007: Remove SkBenchmark::postDraw. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: dm too Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | bench/SkBenchmark.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 321 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 virtual void onDraw(const int loops, SkCanvas*) SK_OVERRIDE { 332 virtual void onDraw(const int loops, SkCanvas*) SK_OVERRIDE {
333 for (int i = 0; i < loops; ++i) { 333 for (int i = 0; i < loops; ++i) {
334 if (i % 1000 == 0) { 334 if (i % 1000 == 0) {
335 fPath.reset(); // PathRef memory can grow without bound otherwi se. 335 fPath.reset(); // PathRef memory can grow without bound otherwi se.
336 } 336 }
337 this->makePath(&fPath); 337 this->makePath(&fPath);
338 } 338 }
339 this->restartMakingPaths(); 339 this->restartMakingPaths();
340 } 340 }
341 341
342 virtual void onPostDraw() SK_OVERRIDE {
343 this->finishedMakingPaths();
344 }
345
346 private: 342 private:
347 SkPath fPath; 343 SkPath fPath;
348 344
349 typedef RandomPathBench INHERITED; 345 typedef RandomPathBench INHERITED;
350 }; 346 };
351 347
352 class PathCopyBench : public RandomPathBench { 348 class PathCopyBench : public RandomPathBench {
353 public: 349 public:
354 PathCopyBench() { 350 PathCopyBench() {
355 } 351 }
(...skipping 10 matching lines...) Expand all
366 this->makePath(&fPaths[i]); 362 this->makePath(&fPaths[i]);
367 } 363 }
368 this->finishedMakingPaths(); 364 this->finishedMakingPaths();
369 } 365 }
370 virtual void onDraw(const int loops, SkCanvas*) SK_OVERRIDE { 366 virtual void onDraw(const int loops, SkCanvas*) SK_OVERRIDE {
371 for (int i = 0; i < loops; ++i) { 367 for (int i = 0; i < loops; ++i) {
372 int idx = i & (kPathCnt - 1); 368 int idx = i & (kPathCnt - 1);
373 fCopies[idx] = fPaths[idx]; 369 fCopies[idx] = fPaths[idx];
374 } 370 }
375 } 371 }
376 virtual void onPostDraw() SK_OVERRIDE {
377 fPaths.reset(0);
378 fCopies.reset(0);
379 }
380 372
381 private: 373 private:
382 enum { 374 enum {
383 // must be a pow 2 375 // must be a pow 2
384 kPathCnt = 1 << 5, 376 kPathCnt = 1 << 5,
385 }; 377 };
386 SkAutoTArray<SkPath> fPaths; 378 SkAutoTArray<SkPath> fPaths;
387 SkAutoTArray<SkPath> fCopies; 379 SkAutoTArray<SkPath> fCopies;
388 380
389 typedef RandomPathBench INHERITED; 381 typedef RandomPathBench INHERITED;
(...skipping 27 matching lines...) Expand all
417 fPaths[i & (kPathCnt - 1)].transform(fMatrix); 409 fPaths[i & (kPathCnt - 1)].transform(fMatrix);
418 } 410 }
419 } else { 411 } else {
420 for (int i = 0; i < loops; ++i) { 412 for (int i = 0; i < loops; ++i) {
421 int idx = i & (kPathCnt - 1); 413 int idx = i & (kPathCnt - 1);
422 fPaths[idx].transform(fMatrix, &fTransformed[idx]); 414 fPaths[idx].transform(fMatrix, &fTransformed[idx]);
423 } 415 }
424 } 416 }
425 } 417 }
426 418
427 virtual void onPostDraw() SK_OVERRIDE {
428 fPaths.reset(0);
429 fTransformed.reset(0);
430 }
431
432 private: 419 private:
433 enum { 420 enum {
434 // must be a pow 2 421 // must be a pow 2
435 kPathCnt = 1 << 5, 422 kPathCnt = 1 << 5,
436 }; 423 };
437 SkAutoTArray<SkPath> fPaths; 424 SkAutoTArray<SkPath> fPaths;
438 SkAutoTArray<SkPath> fTransformed; 425 SkAutoTArray<SkPath> fTransformed;
439 426
440 SkMatrix fMatrix; 427 SkMatrix fMatrix;
441 bool fInPlace; 428 bool fInPlace;
(...skipping 21 matching lines...) Expand all
463 this->finishedMakingPaths(); 450 this->finishedMakingPaths();
464 } 451 }
465 452
466 virtual void onDraw(const int loops, SkCanvas*) SK_OVERRIDE { 453 virtual void onDraw(const int loops, SkCanvas*) SK_OVERRIDE {
467 for (int i = 0; i < loops; ++i) { 454 for (int i = 0; i < loops; ++i) {
468 int idx = i & (kPathCnt - 1); 455 int idx = i & (kPathCnt - 1);
469 fParity ^= (fPaths[idx] == fCopies[idx & ~0x1]); 456 fParity ^= (fPaths[idx] == fCopies[idx & ~0x1]);
470 } 457 }
471 } 458 }
472 459
473 virtual void onPostDraw() SK_OVERRIDE {
474 fPaths.reset(0);
475 fCopies.reset(0);
476 }
477
478 private: 460 private:
479 bool fParity; // attempt to keep compiler from optimizing out the == 461 bool fParity; // attempt to keep compiler from optimizing out the ==
480 enum { 462 enum {
481 // must be a pow 2 463 // must be a pow 2
482 kPathCnt = 1 << 5, 464 kPathCnt = 1 << 5,
483 }; 465 };
484 SkAutoTArray<SkPath> fPaths; 466 SkAutoTArray<SkPath> fPaths;
485 SkAutoTArray<SkPath> fCopies; 467 SkAutoTArray<SkPath> fCopies;
486 typedef RandomPathBench INHERITED; 468 typedef RandomPathBench INHERITED;
487 }; 469 };
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
565 case kReversePathTo_AddType: 547 case kReversePathTo_AddType:
566 for (int i = 0; i < loops; ++i) { 548 for (int i = 0; i < loops; ++i) {
567 int idx = i & (kPathCnt - 1); 549 int idx = i & (kPathCnt - 1);
568 SkPath result = fPaths0[idx]; 550 SkPath result = fPaths0[idx];
569 result.reversePathTo(fPaths1[idx]); 551 result.reversePathTo(fPaths1[idx]);
570 } 552 }
571 break; 553 break;
572 } 554 }
573 } 555 }
574 556
575 virtual void onPostDraw() SK_OVERRIDE {
576 fPaths0.reset(0);
577 fPaths1.reset(0);
578 }
579
580 private: 557 private:
581 AddType fType; // or reverseAddPath 558 AddType fType; // or reverseAddPath
582 enum { 559 enum {
583 // must be a pow 2 560 // must be a pow 2
584 kPathCnt = 1 << 5, 561 kPathCnt = 1 << 5,
585 }; 562 };
586 SkAutoTArray<SkPath> fPaths0; 563 SkAutoTArray<SkPath> fPaths0;
587 SkAutoTArray<SkPath> fPaths1; 564 SkAutoTArray<SkPath> fPaths1;
588 SkMatrix fMatrix; 565 SkMatrix fMatrix;
589 typedef RandomPathBench INHERITED; 566 typedef RandomPathBench INHERITED;
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
801 SkPoint xy; 778 SkPoint xy;
802 size.fWidth = rand.nextRangeScalar(kQueryMin.fWidth, kQueryMax.fWid th); 779 size.fWidth = rand.nextRangeScalar(kQueryMin.fWidth, kQueryMax.fWid th);
803 size.fHeight = rand.nextRangeScalar(kQueryMin.fHeight, kQueryMax.fHe ight); 780 size.fHeight = rand.nextRangeScalar(kQueryMin.fHeight, kQueryMax.fHe ight);
804 xy.fX = rand.nextRangeScalar(kBounds.fLeft, kBounds.fRight - size.fW idth); 781 xy.fX = rand.nextRangeScalar(kBounds.fLeft, kBounds.fRight - size.fW idth);
805 xy.fY = rand.nextRangeScalar(kBounds.fTop, kBounds.fBottom - size.fH eight); 782 xy.fY = rand.nextRangeScalar(kBounds.fTop, kBounds.fBottom - size.fH eight);
806 783
807 fQueryRects[i] = SkRect::MakeXYWH(xy.fX, xy.fY, size.fWidth, size.fH eight); 784 fQueryRects[i] = SkRect::MakeXYWH(xy.fX, xy.fY, size.fWidth, size.fH eight);
808 } 785 }
809 } 786 }
810 787
811 virtual void onPostDraw() SK_OVERRIDE {
812 fQueryRects.setCount(0);
813 }
814
815 enum { 788 enum {
816 kQueryRectCnt = 400, 789 kQueryRectCnt = 400,
817 }; 790 };
818 static const SkRect kBounds; // bounds for all random query rects 791 static const SkRect kBounds; // bounds for all random query rects
819 static const SkSize kQueryMin; // minimum query rect size, should be <= kQue ryMax 792 static const SkSize kQueryMin; // minimum query rect size, should be <= kQue ryMax
820 static const SkSize kQueryMax; // max query rect size, should < kBounds 793 static const SkSize kQueryMax; // max query rect size, should < kBounds
821 static const SkRect kBaseRect; // rect that is used to construct the path 794 static const SkRect kBaseRect; // rect that is used to construct the path
822 static const SkScalar kRRRadii[2]; // x and y radii for round rect 795 static const SkScalar kRRRadii[2]; // x and y radii for round rect
823 796
824 SkString fName; 797 SkString fName;
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
1037 DEF_BENCH( return new ArbRoundRectBench(true); ) 1010 DEF_BENCH( return new ArbRoundRectBench(true); )
1038 DEF_BENCH( return new ConservativelyContainsBench(ConservativelyContainsBench::k Rect_Type); ) 1011 DEF_BENCH( return new ConservativelyContainsBench(ConservativelyContainsBench::k Rect_Type); )
1039 DEF_BENCH( return new ConservativelyContainsBench(ConservativelyContainsBench::k RoundRect_Type); ) 1012 DEF_BENCH( return new ConservativelyContainsBench(ConservativelyContainsBench::k RoundRect_Type); )
1040 DEF_BENCH( return new ConservativelyContainsBench(ConservativelyContainsBench::k Oval_Type); ) 1013 DEF_BENCH( return new ConservativelyContainsBench(ConservativelyContainsBench::k Oval_Type); )
1041 1014
1042 DEF_BENCH( return new ConicBench_Chop5() ) 1015 DEF_BENCH( return new ConicBench_Chop5() )
1043 DEF_BENCH( return new ConicBench_ChopHalf() ) 1016 DEF_BENCH( return new ConicBench_ChopHalf() )
1044 DEF_BENCH( return new ConicBench_ComputeError() ) 1017 DEF_BENCH( return new ConicBench_ComputeError() )
1045 DEF_BENCH( return new ConicBench_asQuadTol() ) 1018 DEF_BENCH( return new ConicBench_asQuadTol() )
1046 DEF_BENCH( return new ConicBench_quadPow2() ) 1019 DEF_BENCH( return new ConicBench_quadPow2() )
OLDNEW
« no previous file with comments | « no previous file | bench/SkBenchmark.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698