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 SK_DEFINE_INST_COUNT(SkBenchmark) 13 14 template BenchRegistry* BenchRegistry::gHead; 15 SkBenchmark(void * defineDict)16SkBenchmark::SkBenchmark(void* defineDict) { 17 fDict = reinterpret_cast<const SkTDict<const char*>*>(defineDict); 18 fForceAlpha = 0xFF; 19 fForceAA = true; 20 fDither = SkTriState::kDefault; 21 fHasStrokeWidth = false; 22 fIsRendering = true; 23 } 24 getName()25const char* SkBenchmark::getName() { 26 return this->onGetName(); 27 } 28 getSize()29SkIPoint SkBenchmark::getSize() { 30 return this->onGetSize(); 31 } 32 preDraw()33void SkBenchmark::preDraw() { 34 this->onPreDraw(); 35 } 36 draw(SkCanvas * canvas)37void SkBenchmark::draw(SkCanvas* canvas) { 38 this->onDraw(canvas); 39 } 40 postDraw()41void SkBenchmark::postDraw() { 42 this->onPostDraw(); 43 } 44 setupPaint(SkPaint * paint)45void SkBenchmark::setupPaint(SkPaint* paint) { 46 paint->setAlpha(fForceAlpha); 47 paint->setAntiAlias(fForceAA); 48 paint->setFilterBitmap(fForceFilter); 49 50 if (SkTriState::kDefault != fDither) { 51 paint->setDither(SkTriState::kTrue == fDither); 52 } 53 } 54 findDefine(const char * key) const55const char* SkBenchmark::findDefine(const char* key) const { 56 if (fDict) { 57 const char* value; 58 if (fDict->find(key, &value)) { 59 return value; 60 } 61 } 62 return NULL; 63 } 64 findDefine32(const char * key,int32_t * value) const65bool SkBenchmark::findDefine32(const char* key, int32_t* value) const { 66 const char* valueStr = this->findDefine(key); 67 if (valueStr) { 68 SkParse::FindS32(valueStr, value); 69 return true; 70 } 71 return false; 72 } 73 findDefineScalar(const char * key,SkScalar * value) const74bool SkBenchmark::findDefineScalar(const char* key, SkScalar* value) const { 75 const char* valueStr = this->findDefine(key); 76 if (valueStr) { 77 SkParse::FindScalar(valueStr, value); 78 return true; 79 } 80 return false; 81 } 82 83 /////////////////////////////////////////////////////////////////////////////// 84 onGetSize()85SkIPoint SkBenchmark::onGetSize() { 86 return SkIPoint::Make(640, 480); 87 } 88