1 /*
2  * Copyright 2015 Google Inc.
3  *
4  * Use of this source code is governed by a BSD-style license that can be
5  * found in the LICENSE file.
6  */
7 
8 #ifndef SKPAnimationBench_DEFINED
9 #define SKPAnimationBench_DEFINED
10 
11 #include "SKPBench.h"
12 
13 /**
14  * Runs an SkPicture as a benchmark by repeatedly drawing it, first centering the picture and
15  * for each step it concats the passed in matrix
16  */
17 class SKPAnimationBench : public SKPBench {
18 public:
19     SKPAnimationBench(const char* name, const SkPicture*, const SkIRect& devClip,
20                       SkMatrix viewMatrix, int steps);
21 
22 protected:
23     const char* onGetName() override;
24     const char* onGetUniqueName() override;
25     void onPerCanvasPreDraw(SkCanvas* canvas) override;
26 
drawMPDPicture()27     void drawMPDPicture() override {
28         SkFAIL("MPD not supported\n");
29     }
30     void drawPicture() override;
31 
32 private:
33     int fSteps;
34     SkMatrix fAnimationMatrix;
35     SkString fName;
36     SkString fUniqueName;
37     SkPoint fCenter;
38 
39     typedef SKPBench INHERITED;
40 };
41 
42 #endif
43