Home | History | Annotate | Download | only in bench
      1 /*
      2  * Copyright 2011 Google Inc.
      3  *
      4  * Use of this source code is governed by a BSD-style license that can be
      5  * found in the LICENSE file.
      6  */
      7 
      8 #include "Benchmark.h"
      9 
     10 #include "SkPaint.h"
     11 #include "SkParse.h"
     12 
     13 const char* SkTriState::Name[] = { "default", "true", "false" };
     14 
     15 template BenchRegistry* BenchRegistry::gHead;
     16 
     17 Benchmark::Benchmark() {
     18     fForceAlpha = 0xFF;
     19     fForceAA = true;
     20     fForceFilter = false;
     21     fDither = SkTriState::kDefault;
     22     fOrMask = fClearMask = 0;
     23 }
     24 
     25 const char* Benchmark::getName() {
     26     return this->onGetName();
     27 }
     28 
     29 SkIPoint Benchmark::getSize() {
     30     return this->onGetSize();
     31 }
     32 
     33 void Benchmark::preDraw() {
     34     this->onPreDraw();
     35 }
     36 
     37 void Benchmark::draw(const int loops, SkCanvas* canvas) {
     38     this->onDraw(loops, canvas);
     39 }
     40 
     41 void Benchmark::setupPaint(SkPaint* paint) {
     42     paint->setAlpha(fForceAlpha);
     43     paint->setAntiAlias(fForceAA);
     44     paint->setFilterLevel(fForceFilter ? SkPaint::kLow_FilterLevel
     45                                        : SkPaint::kNone_FilterLevel);
     46 
     47     paint->setFlags((paint->getFlags() & ~fClearMask) | fOrMask);
     48 
     49     if (SkTriState::kDefault != fDither) {
     50         paint->setDither(SkTriState::kTrue == fDither);
     51     }
     52 }
     53 
     54 SkIPoint Benchmark::onGetSize() {
     55     return SkIPoint::Make(640, 480);
     56 }
     57