aboutsummaryrefslogtreecommitdiffhomepage
path: root/bench/SKPAnimationBench.h
diff options
context:
space:
mode:
authorGravatar joshualitt <joshualitt@chromium.org>2015-04-27 09:16:57 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-04-27 09:16:57 -0700
commit261c3ad7fde95748da92550735decc949dc73bf2 (patch)
treeb3e824a2c6e59a8001dd5a9641047ff7f56acb2b /bench/SKPAnimationBench.h
parent00c2af8b731085a7fe456e689b70f019a34ef7dd (diff)
Change to add zoom animations to nanobench
Diffstat (limited to 'bench/SKPAnimationBench.h')
-rw-r--r--bench/SKPAnimationBench.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/bench/SKPAnimationBench.h b/bench/SKPAnimationBench.h
new file mode 100644
index 0000000000..f6e9fa4ede
--- /dev/null
+++ b/bench/SKPAnimationBench.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2015 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#ifndef SKPAnimationBench_DEFINED
+#define SKPAnimationBench_DEFINED
+
+#include "SKPBench.h"
+
+/**
+ * Runs an SkPicture as a benchmark by repeatedly drawing it, first centering the picture and
+ * for each step it concats the passed in matrix
+ */
+class SKPAnimationBench : public SKPBench {
+public:
+ SKPAnimationBench(const char* name, const SkPicture*, const SkIRect& devClip,
+ SkMatrix viewMatrix, int steps);
+
+protected:
+ const char* onGetName() override;
+ const char* onGetUniqueName() override;
+ void onPerCanvasPreDraw(SkCanvas* canvas) override;
+
+ void drawMPDPicture() override {
+ SkFAIL("MPD not supported\n");
+ }
+ void drawPicture() override;
+
+private:
+ int fSteps;
+ SkMatrix fAnimationMatrix;
+ SkString fName;
+ SkString fUniqueName;
+ SkPoint fCenter;
+
+ typedef SKPBench INHERITED;
+};
+
+#endif