| /* | |
| * Copyright 2011 Google Inc. | |
| * | |
| * Use of this source code is governed by a BSD-style license that can be | |
| * found in the LICENSE file. | |
| */ | |
| #include "bench/Benchmark.h" | |
| #include "include/core/SkCanvas.h" | |
| #include "include/core/SkPaint.h" | |
| #include "include/utils/SkParse.h" | |
| template BenchRegistry* BenchRegistry::gHead; | |
| Benchmark::Benchmark() {} | |
| const char* Benchmark::getName() { | |
| return this->onGetName(); | |
| } | |
| const char* Benchmark::getUniqueName() { | |
| return this->onGetUniqueName(); | |
| } | |
| SkISize Benchmark::getSize() { | |
| return this->onGetSize(); | |
| } | |
| void Benchmark::delayedSetup() { | |
| this->onDelayedSetup(); | |
| } | |
| void Benchmark::perCanvasPreDraw(SkCanvas* canvas) { | |
| this->onPerCanvasPreDraw(canvas); | |
| } | |
| void Benchmark::preDraw(SkCanvas* canvas) { | |
| this->onPreDraw(canvas); | |
| } | |
| void Benchmark::postDraw(SkCanvas* canvas) { | |
| this->onPostDraw(canvas); | |
| } | |
| void Benchmark::perCanvasPostDraw(SkCanvas* canvas) { | |
| this->onPerCanvasPostDraw(canvas); | |
| } | |
| void Benchmark::draw(int loops, SkCanvas* canvas, std::function<void()> submitFrame) { | |
| SkAutoCanvasRestore ar(canvas, true/*save now*/); | |
| if (this->submitsInternalFrames()) { | |
| this->onDrawFrame(loops, canvas, std::move(submitFrame)); | |
| } else { | |
| this->onDraw(loops, canvas); | |
| if (submitFrame) { | |
| submitFrame(); | |
| } | |
| } | |
| } | |
| void Benchmark::setupPaint(SkPaint* paint) { | |
| paint->setAntiAlias(true); | |
| } | |
| SkISize Benchmark::onGetSize() { | |
| return SkISize::Make(640, 480); | |
| } |