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 */
17class SKPAnimationBench : public SKPBench {
18public:
19    SKPAnimationBench(const char* name, const SkPicture*, const SkIRect& devClip,
20                      SkMatrix viewMatrix, int steps);
21
22protected:
23    const char* onGetName() override;
24    const char* onGetUniqueName() override;
25    void onPerCanvasPreDraw(SkCanvas* canvas) override;
26
27    void drawMPDPicture() override {
28        SkFAIL("MPD not supported\n");
29    }
30    void drawPicture() override;
31
32private:
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