blob: 6a61e661a0deddad51ed4470954ddd1ff1716e0c [file] [log] [blame]
mtkleinfd731ce2014-09-10 12:19:30 -07001/*
2 * Copyright 2014 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#ifndef RecordingBench_DEFINED
9#define RecordingBench_DEFINED
10
Mike Kleinc0bd9f92019-04-23 12:05:21 -050011#include "bench/Benchmark.h"
12#include "include/core/SkPicture.h"
mtkleinfd731ce2014-09-10 12:19:30 -070013
Mike Reed9cdd2ab2016-10-21 10:43:36 -040014class PictureCentricBench : public Benchmark {
mtkleinfd731ce2014-09-10 12:19:30 -070015public:
Mike Reed9cdd2ab2016-10-21 10:43:36 -040016 PictureCentricBench(const char* name, const SkPicture*);
mtkleinfd731ce2014-09-10 12:19:30 -070017
18protected:
mtklein36352bf2015-03-25 18:17:31 -070019 const char* onGetName() override;
20 bool isSuitableFor(Backend) override;
mtklein36352bf2015-03-25 18:17:31 -070021 SkIPoint onGetSize() override;
mtkleinfd731ce2014-09-10 12:19:30 -070022
Mike Reed9cdd2ab2016-10-21 10:43:36 -040023protected:
mtklein8c1a4f82016-08-08 06:56:22 -070024 sk_sp<const SkPicture> fSrc;
mtkleinfd731ce2014-09-10 12:19:30 -070025 SkString fName;
Mike Reed9cdd2ab2016-10-21 10:43:36 -040026
27 typedef Benchmark INHERITED;
28};
29
30class RecordingBench : public PictureCentricBench {
31public:
Mike Kleina705cb92019-05-14 12:33:40 -050032 RecordingBench(const char* name, const SkPicture*, bool useBBH);
Mike Reed9cdd2ab2016-10-21 10:43:36 -040033
34protected:
35 void onDraw(int loops, SkCanvas*) override;
36
37private:
mtkleinfd731ce2014-09-10 12:19:30 -070038 bool fUseBBH;
mtkleinfd731ce2014-09-10 12:19:30 -070039
Mike Reed9cdd2ab2016-10-21 10:43:36 -040040 typedef PictureCentricBench INHERITED;
41};
42
Mike Reede45ff462017-12-06 10:47:03 -050043class DeserializePictureBench : public Benchmark {
44public:
45 DeserializePictureBench(const char* name, sk_sp<SkData> encodedPicture);
46
47protected:
48 const char* onGetName() override;
49 bool isSuitableFor(Backend) override;
50 SkIPoint onGetSize() override;
51 void onDraw(int loops, SkCanvas*) override;
52
53private:
54 SkString fName;
55 sk_sp<SkData> fEncodedPicture;
56
57 typedef Benchmark INHERITED;
58};
59
mtkleinfd731ce2014-09-10 12:19:30 -070060#endif//RecordingBench_DEFINED