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