|  | /* | 
|  | * 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(); | 
|  | } |