1dd3948899725041bf52e3a4eea922f9961ee0a9bscroggo@google.com
2dd3948899725041bf52e3a4eea922f9961ee0a9bscroggo@google.com/*
3dd3948899725041bf52e3a4eea922f9961ee0a9bscroggo@google.com * Copyright 2012 The Android Open Source Project
4dd3948899725041bf52e3a4eea922f9961ee0a9bscroggo@google.com *
5dd3948899725041bf52e3a4eea922f9961ee0a9bscroggo@google.com * Use of this source code is governed by a BSD-style license that can be
6dd3948899725041bf52e3a4eea922f9961ee0a9bscroggo@google.com * found in the LICENSE file.
7dd3948899725041bf52e3a4eea922f9961ee0a9bscroggo@google.com */
8dd3948899725041bf52e3a4eea922f9961ee0a9bscroggo@google.com
9f168b86d7fafc5c20c87bebc6fd393cb17e120catfarina#include "Benchmark.h"
10dd3948899725041bf52e3a4eea922f9961ee0a9bscroggo@google.com#include "SkCanvas.h"
11dd3948899725041bf52e3a4eea922f9961ee0a9bscroggo@google.com#include "SkWriter32.h"
12dd3948899725041bf52e3a4eea922f9961ee0a9bscroggo@google.com
13f168b86d7fafc5c20c87bebc6fd393cb17e120catfarinaclass WriterBench : public Benchmark {
14dd3948899725041bf52e3a4eea922f9961ee0a9bscroggo@google.compublic:
15644629c1c7913a43ced172b98d56e0f471bc348bcommit-bot@chromium.org    virtual bool isSuitableFor(Backend backend) SK_OVERRIDE {
16644629c1c7913a43ced172b98d56e0f471bc348bcommit-bot@chromium.org        return backend == kNonRendering_Backend;
17644629c1c7913a43ced172b98d56e0f471bc348bcommit-bot@chromium.org    }
18dd3948899725041bf52e3a4eea922f9961ee0a9bscroggo@google.com
19dd3948899725041bf52e3a4eea922f9961ee0a9bscroggo@google.comprotected:
20dd3948899725041bf52e3a4eea922f9961ee0a9bscroggo@google.com    virtual const char* onGetName() SK_OVERRIDE {
21dd3948899725041bf52e3a4eea922f9961ee0a9bscroggo@google.com        return "writer";
22dd3948899725041bf52e3a4eea922f9961ee0a9bscroggo@google.com    }
23dd3948899725041bf52e3a4eea922f9961ee0a9bscroggo@google.com
243361471a3504ecd0351ff70f4c42d8d6fee963d4commit-bot@chromium.org    virtual void onDraw(const int loops, SkCanvas*) SK_OVERRIDE {
25dd3948899725041bf52e3a4eea922f9961ee0a9bscroggo@google.com        static const char gStr[] = "abcdefghimjklmnopqrstuvwxyz";
26dd3948899725041bf52e3a4eea922f9961ee0a9bscroggo@google.com        static const size_t gLen = strlen(gStr);
2719382421b916aab00be7265815ba4e2690adf2c9commit-bot@chromium.org        SkWriter32 writer;
283361471a3504ecd0351ff70f4c42d8d6fee963d4commit-bot@chromium.org        for (int i = 0; i < loops; i++) {
29dd3948899725041bf52e3a4eea922f9961ee0a9bscroggo@google.com            for (size_t j = 0; j <= gLen; j++) {
30dd3948899725041bf52e3a4eea922f9961ee0a9bscroggo@google.com                writer.writeString(gStr, j);
31dd3948899725041bf52e3a4eea922f9961ee0a9bscroggo@google.com            }
32dd3948899725041bf52e3a4eea922f9961ee0a9bscroggo@google.com        }
33dd3948899725041bf52e3a4eea922f9961ee0a9bscroggo@google.com    }
34dd3948899725041bf52e3a4eea922f9961ee0a9bscroggo@google.com
35dd3948899725041bf52e3a4eea922f9961ee0a9bscroggo@google.comprivate:
36f168b86d7fafc5c20c87bebc6fd393cb17e120catfarina    typedef Benchmark INHERITED;
37dd3948899725041bf52e3a4eea922f9961ee0a9bscroggo@google.com};
38dd3948899725041bf52e3a4eea922f9961ee0a9bscroggo@google.com
39dd3948899725041bf52e3a4eea922f9961ee0a9bscroggo@google.com////////////////////////////////////////////////////////////////////////////////
40dd3948899725041bf52e3a4eea922f9961ee0a9bscroggo@google.com
41410e6e80f00a6c660675c80904807a041c7b7d2amtklein@google.comDEF_BENCH( return new WriterBench(); )
42