16adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org/*
26adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org * Copyright 2014 Google Inc.
36adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org *
46adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org * Use of this source code is governed by a BSD-style license that can be
56adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org * found in the LICENSE file.
66adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org */
76adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org
8f168b86d7fafc5c20c87bebc6fd393cb17e120catfarina#include "Benchmark.h"
96adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org#include "SkCanvas.h"
10f168b86d7fafc5c20c87bebc6fd393cb17e120catfarina#include "gm.h"
116adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org
126adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org/**
136adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org * Runs a GM as a benchmark by repeatedly drawing the GM.
146adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org */
15f168b86d7fafc5c20c87bebc6fd393cb17e120catfarinaclass GMBench : public Benchmark {
166adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.orgpublic:
176adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org    // Constructor takes ownership of the GM param.
18f168b86d7fafc5c20c87bebc6fd393cb17e120catfarina    GMBench(skiagm::GM* gm);
19f168b86d7fafc5c20c87bebc6fd393cb17e120catfarina    virtual ~GMBench();
206adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org
216adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.orgprotected:
226adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org    virtual const char* onGetName() SK_OVERRIDE;
236adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org    virtual bool isSuitableFor(Backend backend) SK_OVERRIDE;
246adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org    virtual void onDraw(const int loops, SkCanvas* canvas) SK_OVERRIDE;
256adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org    virtual SkIPoint onGetSize() SK_OVERRIDE;
266adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org
276adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.orgprivate:
286adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org    skiagm::GM* fGM;
296adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org    SkString    fName;
30f168b86d7fafc5c20c87bebc6fd393cb17e120catfarina    typedef Benchmark INHERITED;
316adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org};
32