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