1 /* 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 11 #include "Benchmark.h" 12 #include "SkPicture.h" 13 #include "SkLiteDL.h" 14 15 class PictureCentricBench : public Benchmark { 16 public: 17 PictureCentricBench(const char* name, const SkPicture*); 18 19 protected: 20 const char* onGetName() override; 21 bool isSuitableFor(Backend) override; 22 SkIPoint onGetSize() override; 23 24 protected: 25 sk_sp<const SkPicture> fSrc; 26 SkString fName; 27 28 typedef Benchmark INHERITED; 29 }; 30 31 class RecordingBench : public PictureCentricBench { 32 public: 33 RecordingBench(const char* name, const SkPicture*, bool useBBH, bool lite); 34 35 protected: 36 void onDraw(int loops, SkCanvas*) override; 37 38 private: 39 std::unique_ptr<SkLiteDL> fDL; 40 bool fUseBBH; 41 42 typedef PictureCentricBench INHERITED; 43 }; 44 45 class DeserializePictureBench : public Benchmark { 46 public: 47 DeserializePictureBench(const char* name, sk_sp<SkData> encodedPicture); 48 49 protected: 50 const char* onGetName() override; 51 bool isSuitableFor(Backend) override; 52 SkIPoint onGetSize() override; 53 void onDraw(int loops, SkCanvas*) override; 54 55 private: 56 SkString fName; 57 sk_sp<SkData> fEncodedPicture; 58 59 typedef Benchmark INHERITED; 60 }; 61 62 #endif//RecordingBench_DEFINED 63