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