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