/* * Copyright 2014 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #include "SKPBench.h" SKPBench::SKPBench(const char* name, const SkPicture* pic, const SkIRect& clip, SkScalar scale) : fPic(SkRef(pic)) , fClip(clip) , fScale(scale) , fName(name) { fUniqueName.printf("%s_%.2g", name, scale); // Scale makes this unqiue for skiaperf.com traces. } const char* SKPBench::onGetName() { return fName.c_str(); } const char* SKPBench::onGetUniqueName() { return fUniqueName.c_str(); } bool SKPBench::isSuitableFor(Backend backend) { return backend != kNonRendering_Backend; } SkIPoint SKPBench::onGetSize() { return SkIPoint::Make(fClip.width(), fClip.height()); } void SKPBench::onDraw(const int loops, SkCanvas* canvas) { canvas->save(); canvas->scale(fScale, fScale); for (int i = 0; i < loops; i++) { fPic->playback(canvas); canvas->flush(); } canvas->restore(); }