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; 194bc1983e01d756ae9c91fd380758457f579d26eareed@android.com fForceAA = true; 204469938e92d779dff05e745559e67907bbf21e78reed@google.com fForceFilter = false; 214e635f9eb218b15f656a02e71c60d4f787fe9306reed@android.com fDither = SkTriState::kDefault; 22ef77ec210416733e38072175cc948dcbdb831685reed@google.com fOrMask = fClearMask = 0; 234bc1983e01d756ae9c91fd380758457f579d26eareed@android.com} 24bd700c391dd45acd8ea1a40321789c9d92a14bb8reed@android.com 25f168b86d7fafc5c20c87bebc6fd393cb17e120catfarinaconst char* Benchmark::getName() { 26bd700c391dd45acd8ea1a40321789c9d92a14bb8reed@android.com return this->onGetName(); 27bd700c391dd45acd8ea1a40321789c9d92a14bb8reed@android.com} 28bd700c391dd45acd8ea1a40321789c9d92a14bb8reed@android.com 29f168b86d7fafc5c20c87bebc6fd393cb17e120catfarinaSkIPoint Benchmark::getSize() { 30bd700c391dd45acd8ea1a40321789c9d92a14bb8reed@android.com return this->onGetSize(); 31bd700c391dd45acd8ea1a40321789c9d92a14bb8reed@android.com} 32bd700c391dd45acd8ea1a40321789c9d92a14bb8reed@android.com 33f168b86d7fafc5c20c87bebc6fd393cb17e120catfarinavoid Benchmark::preDraw() { 3430e6d2c2054c15f1cb6c0637bee6756261291751bsalomon@google.com this->onPreDraw(); 3530e6d2c2054c15f1cb6c0637bee6756261291751bsalomon@google.com} 3630e6d2c2054c15f1cb6c0637bee6756261291751bsalomon@google.com 37f168b86d7fafc5c20c87bebc6fd393cb17e120catfarinavoid Benchmark::draw(const int loops, SkCanvas* canvas) { 383361471a3504ecd0351ff70f4c42d8d6fee963d4commit-bot@chromium.org this->onDraw(loops, canvas); 39bd700c391dd45acd8ea1a40321789c9d92a14bb8reed@android.com} 40bd700c391dd45acd8ea1a40321789c9d92a14bb8reed@android.com 41f168b86d7fafc5c20c87bebc6fd393cb17e120catfarinavoid Benchmark::setupPaint(SkPaint* paint) { 424bc1983e01d756ae9c91fd380758457f579d26eareed@android.com paint->setAlpha(fForceAlpha); 434bc1983e01d756ae9c91fd380758457f579d26eareed@android.com paint->setAntiAlias(fForceAA); 444469938e92d779dff05e745559e67907bbf21e78reed@google.com paint->setFilterLevel(fForceFilter ? SkPaint::kLow_FilterLevel 454469938e92d779dff05e745559e67907bbf21e78reed@google.com : SkPaint::kNone_FilterLevel); 464e635f9eb218b15f656a02e71c60d4f787fe9306reed@android.com 47ef77ec210416733e38072175cc948dcbdb831685reed@google.com paint->setFlags((paint->getFlags() & ~fClearMask) | fOrMask); 48ef77ec210416733e38072175cc948dcbdb831685reed@google.com 494e635f9eb218b15f656a02e71c60d4f787fe9306reed@android.com if (SkTriState::kDefault != fDither) { 504e635f9eb218b15f656a02e71c60d4f787fe9306reed@android.com paint->setDither(SkTriState::kTrue == fDither); 514e635f9eb218b15f656a02e71c60d4f787fe9306reed@android.com } 524bc1983e01d756ae9c91fd380758457f579d26eareed@android.com} 534bc1983e01d756ae9c91fd380758457f579d26eareed@android.com 54f168b86d7fafc5c20c87bebc6fd393cb17e120catfarinaSkIPoint Benchmark::onGetSize() { 550c9da393d9974877f53e8785082f40e1d1c4c833reed@android.com return SkIPoint::Make(640, 480); 56f523e25da069e3e1af2cb73d37073a34f3bb9ea2reed@android.com} 57