1fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot/*
2fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * Copyright 2014 Google Inc.
3fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot *
4fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * Use of this source code is governed by a BSD-style license that can be
5fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * found in the LICENSE file.
6fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot */
7fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
8fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#ifndef RecordingBench_DEFINED
9fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#define RecordingBench_DEFINED
10fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
11fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "Benchmark.h"
12fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkPicture.h"
13fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkLiteDL.h"
14fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
15fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotclass PictureCentricBench : public Benchmark {
16fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotpublic:
17fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    PictureCentricBench(const char* name, const SkPicture*);
18fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
19fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotprotected:
20fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    const char* onGetName() override;
21fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    bool isSuitableFor(Backend) override;
22fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    SkIPoint onGetSize() override;
23fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
24fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotprotected:
25fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    sk_sp<const SkPicture> fSrc;
26fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    SkString fName;
27fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
28fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    typedef Benchmark INHERITED;
29fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot};
30fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
31fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotclass RecordingBench : public PictureCentricBench {
32fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotpublic:
33fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    RecordingBench(const char* name, const SkPicture*, bool useBBH, bool lite);
34fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
35fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotprotected:
36fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    void onDraw(int loops, SkCanvas*) override;
37fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
38fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotprivate:
39fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    std::unique_ptr<SkLiteDL> fDL;
40fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    bool fUseBBH;
41fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
42fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    typedef PictureCentricBench INHERITED;
43fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot};
44fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
45fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotclass PipingBench : public PictureCentricBench {
46fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotpublic:
47fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    PipingBench(const char* name, const SkPicture*);
48fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
49fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotprotected:
50fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    void onDraw(int loops, SkCanvas*) override;
51fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
52fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotprivate:
53fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    typedef PictureCentricBench INHERITED;
54fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot};
55fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
56fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotclass DeserializePictureBench : public Benchmark {
57fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotpublic:
58fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    DeserializePictureBench(const char* name, sk_sp<SkData> encodedPicture);
59fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
60fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotprotected:
61fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    const char* onGetName() override;
62fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    bool isSuitableFor(Backend) override;
63fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    SkIPoint onGetSize() override;
64fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    void onDraw(int loops, SkCanvas*) override;
65fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
66fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotprivate:
67fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    SkString      fName;
68fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    sk_sp<SkData> fEncodedPicture;
69fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
70fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    typedef Benchmark INHERITED;
71fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot};
72fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
73fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#endif//RecordingBench_DEFINED
74