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 PipingBench : public PictureCentricBench { 46 public: 47 PipingBench(const char* name, const SkPicture*); 48 49 protected: 50 void onDraw(int loops, SkCanvas*) override; 51 52 private: 53 typedef PictureCentricBench INHERITED; 54 }; 55 56 #endif//RecordingBench_DEFINED 57