blob: 230a7afd9c258c5efbe4dab9cccc34d60579b7ba [file] [log] [blame]
reed@android.combd700c32009-01-05 03:34:50 +00001#include "SkBenchmark.h"
reed@android.com4bc19832009-01-19 20:08:35 +00002#include "SkPaint.h"
reed@android.com0c9da392010-02-22 19:50:13 +00003#include "SkParse.h"
reed@android.com4bc19832009-01-19 20:08:35 +00004
reed@android.comf523e252009-01-26 23:15:37 +00005template BenchRegistry* BenchRegistry::gHead;
6
reed@android.come9d00602009-09-02 21:12:42 +00007SkBenchmark::SkBenchmark(void* defineDict) {
8 fDict = reinterpret_cast<const SkTDict<const char*>*>(defineDict);
reed@android.com4bc19832009-01-19 20:08:35 +00009 fForceAlpha = 0xFF;
10 fForceAA = true;
reed@android.com4e635f92009-10-19 17:39:46 +000011 fDither = SkTriState::kDefault;
agl@chromium.org652807b2010-04-27 15:47:34 +000012 fHasStrokeWidth = false;
reed@android.com4bc19832009-01-19 20:08:35 +000013}
reed@android.combd700c32009-01-05 03:34:50 +000014
15const char* SkBenchmark::getName() {
16 return this->onGetName();
17}
18
19SkIPoint SkBenchmark::getSize() {
20 return this->onGetSize();
21}
22
23void SkBenchmark::draw(SkCanvas* canvas) {
24 this->onDraw(canvas);
25}
26
reed@android.com4bc19832009-01-19 20:08:35 +000027void SkBenchmark::setupPaint(SkPaint* paint) {
28 paint->setAlpha(fForceAlpha);
29 paint->setAntiAlias(fForceAA);
reed@android.com29348cb2009-08-04 18:17:15 +000030 paint->setFilterBitmap(fForceFilter);
reed@android.com4e635f92009-10-19 17:39:46 +000031
32 if (SkTriState::kDefault != fDither) {
33 paint->setDither(SkTriState::kTrue == fDither);
34 }
reed@android.com4bc19832009-01-19 20:08:35 +000035}
36
reed@android.come9d00602009-09-02 21:12:42 +000037const char* SkBenchmark::findDefine(const char* key) const {
38 if (fDict) {
39 const char* value;
40 if (fDict->find(key, &value)) {
41 return value;
42 }
43 }
44 return NULL;
45}
46
reed@android.com0c9da392010-02-22 19:50:13 +000047bool SkBenchmark::findDefine32(const char* key, int32_t* value) const {
48 const char* valueStr = this->findDefine(key);
49 if (valueStr) {
50 SkParse::FindS32(valueStr, value);
51 return true;
52 }
53 return false;
54}
55
56bool SkBenchmark::findDefineScalar(const char* key, SkScalar* value) const {
57 const char* valueStr = this->findDefine(key);
58 if (valueStr) {
59 SkParse::FindScalar(valueStr, value);
60 return true;
61 }
62 return false;
63}
64
reed@android.comf523e252009-01-26 23:15:37 +000065///////////////////////////////////////////////////////////////////////////////
reed@android.com4bc19832009-01-19 20:08:35 +000066
reed@android.comf523e252009-01-26 23:15:37 +000067SkIPoint SkBenchmark::onGetSize() {
reed@android.com0c9da392010-02-22 19:50:13 +000068 return SkIPoint::Make(640, 480);
reed@android.comf523e252009-01-26 23:15:37 +000069}