| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2011 Google Inc. | 2 * Copyright 2011 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 #include "SkBenchmark.h" | 7 #include "SkBenchmark.h" |
| 8 #include "SkCanvas.h" | 8 #include "SkCanvas.h" |
| 9 #include "SkPaint.h" | 9 #include "SkPaint.h" |
| 10 #include "SkString.h" | 10 #include "SkString.h" |
| (...skipping 443 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 454 W = 1254, | 454 W = 1254, |
| 455 H = 1160, | 455 H = 1160, |
| 456 N = 431 | 456 N = 431 |
| 457 }; | 457 }; |
| 458 public: | 458 public: |
| 459 ScrollGmailBench() { } | 459 ScrollGmailBench() { } |
| 460 | 460 |
| 461 protected: | 461 protected: |
| 462 | 462 |
| 463 virtual const char* onGetName() { return "chrome_scrollGmail"; } | 463 virtual const char* onGetName() { return "chrome_scrollGmail"; } |
| 464 virtual void onDraw(SkCanvas* canvas) { | 464 virtual void onDraw(const int loops, SkCanvas* canvas) { |
| 465 SkDEBUGCODE(this->validateBounds(canvas)); | 465 SkDEBUGCODE(this->validateBounds(canvas)); |
| 466 SkPaint paint; | 466 SkPaint paint; |
| 467 this->setupPaint(&paint); | 467 this->setupPaint(&paint); |
| 468 for (int i = 0; i < N; i++) { | 468 for (int i = 0; i < N; i++) { |
| 469 SkRect current; | 469 SkRect current; |
| 470 setRectangle(current, i); | 470 setRectangle(current, i); |
| 471 for (int j = 0; j < this->getLoops() * gmailScrollingRectSpec[i*3];
j++) { | 471 for (int j = 0; j < loops * gmailScrollingRectSpec[i*3]; j++) { |
| 472 canvas->drawRect(current, paint); | 472 canvas->drawRect(current, paint); |
| 473 } | 473 } |
| 474 } | 474 } |
| 475 } | 475 } |
| 476 virtual SkIPoint onGetSize() { return SkIPoint::Make(W, H); } | 476 virtual SkIPoint onGetSize() { return SkIPoint::Make(W, H); } |
| 477 | 477 |
| 478 void setRectangle(SkRect& current, int i) { | 478 void setRectangle(SkRect& current, int i) { |
| 479 current.set(0, 0, | 479 current.set(0, 0, |
| 480 SkIntToScalar(gmailScrollingRectSpec[i*3+1]), SkIntToScalar(
gmailScrollingRectSpec[i*3+2])); | 480 SkIntToScalar(gmailScrollingRectSpec[i*3+1]), SkIntToScalar(
gmailScrollingRectSpec[i*3+2])); |
| 481 } | 481 } |
| 482 void validateBounds(SkCanvas* canvas) { | 482 void validateBounds(SkCanvas* canvas) { |
| 483 SkIRect bounds; | 483 SkIRect bounds; |
| 484 canvas->getClipDeviceBounds(&bounds); | 484 canvas->getClipDeviceBounds(&bounds); |
| 485 SkASSERT(bounds.right()-bounds.left() >= W); | 485 SkASSERT(bounds.right()-bounds.left() >= W); |
| 486 SkASSERT(bounds.bottom()-bounds.top() >= H); | 486 SkASSERT(bounds.bottom()-bounds.top() >= H); |
| 487 } | 487 } |
| 488 | 488 |
| 489 | 489 |
| 490 private: | 490 private: |
| 491 typedef SkBenchmark INHERITED; | 491 typedef SkBenchmark INHERITED; |
| 492 }; | 492 }; |
| 493 | 493 |
| 494 // Disabled this benchmark: it takes 15x longer than any other benchmark | 494 // Disabled this benchmark: it takes 15x longer than any other benchmark |
| 495 // and is probably not giving us important information. | 495 // and is probably not giving us important information. |
| 496 // DEF_BENCH(return SkNEW(ScrollGmailBench)); | 496 // DEF_BENCH(return SkNEW(ScrollGmailBench)); |
| OLD | NEW |