Home | History | Annotate | Download | only in bench
      1 
      2 /*
      3  * Copyright 2011 Google Inc.
      4  *
      5  * Use of this source code is governed by a BSD-style license that can be
      6  * found in the LICENSE file.
      7  */
      8 #include "SkBenchmark.h"
      9 #include "SkPaint.h"
     10 #include "SkParse.h"
     11 
     12 template BenchRegistry* BenchRegistry::gHead;
     13 
     14 SkBenchmark::SkBenchmark(void* defineDict) {
     15     fDict = reinterpret_cast<const SkTDict<const char*>*>(defineDict);
     16     fForceAlpha = 0xFF;
     17     fForceAA = true;
     18     fDither = SkTriState::kDefault;
     19     fHasStrokeWidth = false;
     20 }
     21 
     22 const char* SkBenchmark::getName() {
     23     return this->onGetName();
     24 }
     25 
     26 SkIPoint SkBenchmark::getSize() {
     27     return this->onGetSize();
     28 }
     29 
     30 void SkBenchmark::draw(SkCanvas* canvas) {
     31     this->onDraw(canvas);
     32 }
     33 
     34 void SkBenchmark::setupPaint(SkPaint* paint) {
     35     paint->setAlpha(fForceAlpha);
     36     paint->setAntiAlias(fForceAA);
     37     paint->setFilterBitmap(fForceFilter);
     38 
     39     if (SkTriState::kDefault != fDither) {
     40         paint->setDither(SkTriState::kTrue == fDither);
     41     }
     42 }
     43 
     44 const char* SkBenchmark::findDefine(const char* key) const {
     45     if (fDict) {
     46         const char* value;
     47         if (fDict->find(key, &value)) {
     48             return value;
     49         }
     50     }
     51     return NULL;
     52 }
     53 
     54 bool SkBenchmark::findDefine32(const char* key, int32_t* value) const {
     55     const char* valueStr = this->findDefine(key);
     56     if (valueStr) {
     57         SkParse::FindS32(valueStr, value);
     58         return true;
     59     }
     60     return false;
     61 }
     62 
     63 bool SkBenchmark::findDefineScalar(const char* key, SkScalar* value) const {
     64     const char* valueStr = this->findDefine(key);
     65     if (valueStr) {
     66         SkParse::FindScalar(valueStr, value);
     67         return true;
     68     }
     69     return false;
     70 }
     71 
     72 ///////////////////////////////////////////////////////////////////////////////
     73 
     74 SkIPoint SkBenchmark::onGetSize() {
     75     return SkIPoint::Make(640, 480);
     76 }
     77