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 */
792007583e43115998412ac8b0a06cc2780eb025cmtklein#ifndef GMBench_DEFINED
892007583e43115998412ac8b0a06cc2780eb025cmtklein#define GMBench_DEFINED
96adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org
10f168b86d7fafc5c20c87bebc6fd393cb17e120catfarina#include "Benchmark.h"
116adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org#include "SkCanvas.h"
12f168b86d7fafc5c20c87bebc6fd393cb17e120catfarina#include "gm.h"
136adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org
146adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org/**
156adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org * Runs a GM as a benchmark by repeatedly drawing the GM.
166adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org */
17f168b86d7fafc5c20c87bebc6fd393cb17e120catfarinaclass GMBench : public Benchmark {
186adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.orgpublic:
196adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org    // Constructor takes ownership of the GM param.
20f168b86d7fafc5c20c87bebc6fd393cb17e120catfarina    GMBench(skiagm::GM* gm);
21d3b65972aad96453ff4510caa3e25a2b847c6d1eBrian Salomon    ~GMBench() override;
226adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org
236adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.orgprotected:
2436352bf5e38f45a70ee4f4fc132a38048d38206dmtklein    const char* onGetName() override;
2536352bf5e38f45a70ee4f4fc132a38048d38206dmtklein    bool isSuitableFor(Backend backend) override;
26a1ebeb25e9acfcd801e089e063311d716b83b8a5mtklein    void onDraw(int loops, SkCanvas* canvas) override;
2736352bf5e38f45a70ee4f4fc132a38048d38206dmtklein    SkIPoint onGetSize() override;
286adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org
296adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.orgprivate:
306adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org    skiagm::GM* fGM;
316adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org    SkString    fName;
32f168b86d7fafc5c20c87bebc6fd393cb17e120catfarina    typedef Benchmark INHERITED;
336adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org};
3492007583e43115998412ac8b0a06cc2780eb025cmtklein
3592007583e43115998412ac8b0a06cc2780eb025cmtklein#endif
36