1 /* 2 * Copyright 2014 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 #ifndef GMBench_DEFINED 8 #define GMBench_DEFINED 9 10 #include "Benchmark.h" 11 #include "SkCanvas.h" 12 #include "gm.h" 13 14 /** 15 * Runs a GM as a benchmark by repeatedly drawing the GM. 16 */ 17 class GMBench : public Benchmark { 18 public: 19 // Constructor takes ownership of the GM param. 20 GMBench(skiagm::GM* gm); 21 virtual ~GMBench(); 22 23 protected: 24 virtual const char* onGetName() SK_OVERRIDE; 25 virtual bool isSuitableFor(Backend backend) SK_OVERRIDE; 26 virtual void onDraw(const int loops, SkCanvas* canvas) SK_OVERRIDE; 27 virtual SkIPoint onGetSize() SK_OVERRIDE; 28 29 private: 30 skiagm::GM* fGM; 31 SkString fName; 32 typedef Benchmark INHERITED; 33 }; 34 35 #endif 36