1ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com/* 2ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Copyright 2011 Google Inc. 3ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * 4ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Use of this source code is governed by a BSD-style license that can be 5ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * found in the LICENSE file. 6ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com */ 7bcbc1788b478b1e54079318ad073e8490aa66faetfarina 8f168b86d7fafc5c20c87bebc6fd393cb17e120catfarina#include "Benchmark.h" 9bcbc1788b478b1e54079318ad073e8490aa66faetfarina 104bc1983e01d756ae9c91fd380758457f579d26eareed@android.com#include "SkPaint.h" 110c9da393d9974877f53e8785082f40e1d1c4c833reed@android.com#include "SkParse.h" 124bc1983e01d756ae9c91fd380758457f579d26eareed@android.com 13c289743864e2ab926a95e617a5cd1d29b26d1825mtklein@google.comconst char* SkTriState::Name[] = { "default", "true", "false" }; 14c289743864e2ab926a95e617a5cd1d29b26d1825mtklein@google.com 15f523e25da069e3e1af2cb73d37073a34f3bb9ea2reed@android.comtemplate BenchRegistry* BenchRegistry::gHead; 16f523e25da069e3e1af2cb73d37073a34f3bb9ea2reed@android.com 17f168b86d7fafc5c20c87bebc6fd393cb17e120catfarinaBenchmark::Benchmark() { 184bc1983e01d756ae9c91fd380758457f579d26eareed@android.com fForceAlpha = 0xFF; 194e635f9eb218b15f656a02e71c60d4f787fe9306reed@android.com fDither = SkTriState::kDefault; 20ef77ec210416733e38072175cc948dcbdb831685reed@google.com fOrMask = fClearMask = 0; 214bc1983e01d756ae9c91fd380758457f579d26eareed@android.com} 22bd700c391dd45acd8ea1a40321789c9d92a14bb8reed@android.com 23f168b86d7fafc5c20c87bebc6fd393cb17e120catfarinaconst char* Benchmark::getName() { 24bd700c391dd45acd8ea1a40321789c9d92a14bb8reed@android.com return this->onGetName(); 25bd700c391dd45acd8ea1a40321789c9d92a14bb8reed@android.com} 26bd700c391dd45acd8ea1a40321789c9d92a14bb8reed@android.com 27962890568ddac03d8eb8467a2e81b6f2b7f046f0mtkleinconst char* Benchmark::getUniqueName() { 28962890568ddac03d8eb8467a2e81b6f2b7f046f0mtklein return this->onGetUniqueName(); 29962890568ddac03d8eb8467a2e81b6f2b7f046f0mtklein} 30962890568ddac03d8eb8467a2e81b6f2b7f046f0mtklein 31f168b86d7fafc5c20c87bebc6fd393cb17e120catfarinaSkIPoint Benchmark::getSize() { 32bd700c391dd45acd8ea1a40321789c9d92a14bb8reed@android.com return this->onGetSize(); 33bd700c391dd45acd8ea1a40321789c9d92a14bb8reed@android.com} 34bd700c391dd45acd8ea1a40321789c9d92a14bb8reed@android.com 35f168b86d7fafc5c20c87bebc6fd393cb17e120catfarinavoid Benchmark::preDraw() { 3630e6d2c2054c15f1cb6c0637bee6756261291751bsalomon@google.com this->onPreDraw(); 3730e6d2c2054c15f1cb6c0637bee6756261291751bsalomon@google.com} 3830e6d2c2054c15f1cb6c0637bee6756261291751bsalomon@google.com 39f168b86d7fafc5c20c87bebc6fd393cb17e120catfarinavoid Benchmark::draw(const int loops, SkCanvas* canvas) { 403361471a3504ecd0351ff70f4c42d8d6fee963d4commit-bot@chromium.org this->onDraw(loops, canvas); 41bd700c391dd45acd8ea1a40321789c9d92a14bb8reed@android.com} 42bd700c391dd45acd8ea1a40321789c9d92a14bb8reed@android.com 43f168b86d7fafc5c20c87bebc6fd393cb17e120catfarinavoid Benchmark::setupPaint(SkPaint* paint) { 444bc1983e01d756ae9c91fd380758457f579d26eareed@android.com paint->setAlpha(fForceAlpha); 45762c7188247332a7ee4d108d0c4291b92815aec2kelvinly paint->setAntiAlias(true); 46762c7188247332a7ee4d108d0c4291b92815aec2kelvinly paint->setFilterLevel(SkPaint::kNone_FilterLevel); 474e635f9eb218b15f656a02e71c60d4f787fe9306reed@android.com 48ef77ec210416733e38072175cc948dcbdb831685reed@google.com paint->setFlags((paint->getFlags() & ~fClearMask) | fOrMask); 49ef77ec210416733e38072175cc948dcbdb831685reed@google.com 504e635f9eb218b15f656a02e71c60d4f787fe9306reed@android.com if (SkTriState::kDefault != fDither) { 514e635f9eb218b15f656a02e71c60d4f787fe9306reed@android.com paint->setDither(SkTriState::kTrue == fDither); 524e635f9eb218b15f656a02e71c60d4f787fe9306reed@android.com } 534bc1983e01d756ae9c91fd380758457f579d26eareed@android.com} 544bc1983e01d756ae9c91fd380758457f579d26eareed@android.com 55f168b86d7fafc5c20c87bebc6fd393cb17e120catfarinaSkIPoint Benchmark::onGetSize() { 560c9da393d9974877f53e8785082f40e1d1c4c833reed@android.com return SkIPoint::Make(640, 480); 57f523e25da069e3e1af2cb73d37073a34f3bb9ea2reed@android.com} 58