aboutsummaryrefslogtreecommitdiffhomepage
path: root/bench/Benchmark.h
diff options
context:
space:
mode:
authorGravatar robertphillips <robertphillips@google.com>2014-11-21 05:35:54 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2014-11-21 05:35:54 -0800
commit0ddad31012dabfc1267effc8071d37f7d606efbe (patch)
tree942ae19129cff1465cf147ac2460a1d5f773c24d /bench/Benchmark.h
parent8ebaa7171246eb5b3a7dd65ba42ef42a888508d7 (diff)
Add MultiPictureDraw to nanobench
I would like some guard against performance regressions on our side before turning layer hoisting on in Chromium. TBR=bsalomon@google.com Review URL: https://codereview.chromium.org/731973005
Diffstat (limited to 'bench/Benchmark.h')
-rw-r--r--bench/Benchmark.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/bench/Benchmark.h b/bench/Benchmark.h
index 508d1da694..c30167e572 100644
--- a/bench/Benchmark.h
+++ b/bench/Benchmark.h
@@ -70,6 +70,11 @@ public:
// before the initial draw.
void preDraw();
+ // Called once before and after a series of draw calls to a single canvas.
+ // The setup/break down in these calls is not timed.
+ void perCanvasPreDraw(SkCanvas*);
+ void perCanvasPostDraw(SkCanvas*);
+
// Bench framework can tune loops to be large enough for stable timing.
void draw(const int loops, SkCanvas*);
@@ -101,6 +106,8 @@ protected:
virtual const char* onGetName() = 0;
virtual const char* onGetUniqueName() { return this->onGetName(); }
virtual void onPreDraw() {}
+ virtual void onPerCanvasPreDraw(SkCanvas*) {}
+ virtual void onPerCanvasPostDraw(SkCanvas*) {}
// Each bench should do its main work in a loop like this:
// for (int i = 0; i < loops; i++) { <work here> }
virtual void onDraw(const int loops, SkCanvas*) = 0;