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