/* * 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 "Benchmark.h" #include "SkCanvas.h" #include "SkPaint.h" #include "SkParse.h" const char* SkTriState::Name[] = { "default", "true", "false" }; template BenchRegistry* BenchRegistry::gHead; Benchmark::Benchmark() { fForceAlpha = 0xFF; fDither = SkTriState::kDefault; fOrMask = fClearMask = 0; } const char* Benchmark::getName() { return this->onGetName(); } const char* Benchmark::getUniqueName() { return this->onGetUniqueName(); } SkIPoint 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) { SkAutoCanvasRestore ar(canvas, true/*save now*/); this->onDraw(loops, canvas); } void Benchmark::setupPaint(SkPaint* paint) { paint->setAlpha(fForceAlpha); paint->setAntiAlias(true); paint->setFilterQuality(kNone_SkFilterQuality); paint->setFlags((paint->getFlags() & ~fClearMask) | fOrMask); if (SkTriState::kDefault != fDither) { paint->setDither(SkTriState::kTrue == fDither); } } SkIPoint Benchmark::onGetSize() { return SkIPoint::Make(640, 480); }