aboutsummaryrefslogtreecommitdiffhomepage
path: root/bench/SKPBench.h
diff options
context:
space:
mode:
authorGravatar robertphillips <robertphillips@google.com>2014-11-21 06:19:36 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2014-11-21 06:19:36 -0800
commit5b69377507478623dcf5b11f3ecb010f87c4794f (patch)
tree800d755d25ec30551128e645f0b873a10de2e1e5 /bench/SKPBench.h
parente77dadd91ae6f4319c2c047e7e36cc79bb4d1eff (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 Committed: https://skia.googlesource.com/skia/+/0ddad31012dabfc1267effc8071d37f7d606efbe Review URL: https://codereview.chromium.org/731973005
Diffstat (limited to 'bench/SKPBench.h')
-rw-r--r--bench/SKPBench.h20
1 files changed, 14 insertions, 6 deletions
diff --git a/bench/SKPBench.h b/bench/SKPBench.h
index 0b0e008d63..36d7dfd4cf 100644
--- a/bench/SKPBench.h
+++ b/bench/SKPBench.h
@@ -17,14 +17,18 @@
*/
class SKPBench : public Benchmark {
public:
- SKPBench(const char* name, const SkPicture*, const SkIRect& devClip, SkScalar scale);
+ SKPBench(const char* name, const SkPicture*, const SkIRect& devClip, SkScalar scale,
+ bool useMultiPictureDraw);
+ ~SKPBench() SK_OVERRIDE;
protected:
- virtual const char* onGetName() SK_OVERRIDE;
- virtual const char* onGetUniqueName() SK_OVERRIDE;
- virtual bool isSuitableFor(Backend backend) SK_OVERRIDE;
- virtual void onDraw(const int loops, SkCanvas* canvas) SK_OVERRIDE;
- virtual SkIPoint onGetSize() SK_OVERRIDE;
+ const char* onGetName() SK_OVERRIDE;
+ const char* onGetUniqueName() SK_OVERRIDE;
+ void onPerCanvasPreDraw(SkCanvas*) SK_OVERRIDE;
+ void onPerCanvasPostDraw(SkCanvas*) SK_OVERRIDE;
+ bool isSuitableFor(Backend backend) SK_OVERRIDE;
+ void onDraw(const int loops, SkCanvas* canvas) SK_OVERRIDE;
+ SkIPoint onGetSize() SK_OVERRIDE;
private:
SkAutoTUnref<const SkPicture> fPic;
@@ -33,6 +37,10 @@ private:
SkString fName;
SkString fUniqueName;
+ const bool fUseMultiPictureDraw;
+ SkTDArray<SkSurface*> fSurfaces; // for MultiPictureDraw
+ SkTDArray<SkIRect> fTileRects; // for MultiPictureDraw
+
typedef Benchmark INHERITED;
};