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 #include "SkBenchmark.h"
      8 #include "SkPaint.h"
      9 #include "SkParse.h"
     10 
     11 const char* SkTriState::Name[] = { "default", "true", "false" };
     12 
     13 template BenchRegistry* BenchRegistry::gHead;
     14 
     15 SkString SkBenchmark::gResourcePath;
     16 
     17 SkBenchmark::SkBenchmark() {
     18     fForceAlpha = 0xFF;
     19     fForceAA = true;
     20     fForceFilter = false;
     21     fDither = SkTriState::kDefault;
     22     fOrMask = fClearMask = 0;
     23 }
     24 
     25 const char* SkBenchmark::getName() {
     26     return this->onGetName();
     27 }
     28 
     29 SkIPoint SkBenchmark::getSize() {
     30     return this->onGetSize();
     31 }
     32 
     33 void SkBenchmark::preDraw() {
     34     this->onPreDraw();
     35 }
     36 
     37 void SkBenchmark::draw(const int loops, SkCanvas* canvas) {
     38     this->onDraw(loops, canvas);
     39 }
     40 
     41 void SkBenchmark::postDraw() {
     42     this->onPostDraw();
     43 }
     44 
     45 void SkBenchmark::setupPaint(SkPaint* paint) {
     46     paint->setAlpha(fForceAlpha);
     47     paint->setAntiAlias(fForceAA);
     48     paint->setFilterLevel(fForceFilter ? SkPaint::kLow_FilterLevel
     49                                        : SkPaint::kNone_FilterLevel);
     50 
     51     paint->setFlags((paint->getFlags() & ~fClearMask) | fOrMask);
     52 
     53     if (SkTriState::kDefault != fDither) {
     54         paint->setDither(SkTriState::kTrue == fDither);
     55     }
     56 }
     57 
     58 
     59 ///////////////////////////////////////////////////////////////////////////////
     60 
     61 SkIPoint SkBenchmark::onGetSize() {
     62     return SkIPoint::Make(640, 480);
     63 }
     64