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 */
15class GMBench : public Benchmark {
16public:
17    // Constructor takes ownership of the GM param.
18    GMBench(skiagm::GM* gm);
19    virtual ~GMBench();
20
21protected:
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
27private:
28    skiagm::GM* fGM;
29    SkString    fName;
30    typedef Benchmark INHERITED;
31};
32