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 "GMBench.h" 96adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org 10f168b86d7fafc5c20c87bebc6fd393cb17e120catfarinaGMBench::GMBench(skiagm::GM* gm) : fGM(gm) { 11e714e75c725c987fe682a1f5473224fe3e80380dmtklein fName.printf("GM_%s", gm->getName()); 126adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org} 136adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org 14f168b86d7fafc5c20c87bebc6fd393cb17e120catfarinaGMBench::~GMBench() { delete fGM; } 156adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org 16f168b86d7fafc5c20c87bebc6fd393cb17e120catfarinaconst char* GMBench::onGetName() { 176adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org return fName.c_str(); 186adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org} 196adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org 20f168b86d7fafc5c20c87bebc6fd393cb17e120catfarinabool GMBench::isSuitableFor(Backend backend) { 211c4029296f518a84ef90095243ba210163a1e1f9mtklein return kNonRendering_Backend != backend; 226adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org} 236adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org 24f168b86d7fafc5c20c87bebc6fd393cb17e120catfarinavoid GMBench::onDraw(const int loops, SkCanvas* canvas) { 256adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org // Do we care about timing the draw of the background (once)? 266adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org // Does the GM ever rely on drawBackground to lazily compute something? 276adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org fGM->drawBackground(canvas); 286adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org for (int i = 0; i < loops; ++i) { 296adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org fGM->drawContent(canvas); 306adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org } 316adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org} 326adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org 33f168b86d7fafc5c20c87bebc6fd393cb17e120catfarinaSkIPoint GMBench::onGetSize() { 346adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org SkISize size = fGM->getISize(); 356adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org return SkIPoint::Make(size.fWidth, size.fHeight); 366adce6783c5d7cbef276d04cc08a2b19789a0156commit-bot@chromium.org} 3792007583e43115998412ac8b0a06cc2780eb025cmtklein 38