Home | History | Annotate | Download | only in bench
      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 class DeserializePictureBench : public Benchmark {
     57 public:
     58     DeserializePictureBench(const char* name, sk_sp<SkData> encodedPicture);
     59 
     60 protected:
     61     const char* onGetName() override;
     62     bool isSuitableFor(Backend) override;
     63     SkIPoint onGetSize() override;
     64     void onDraw(int loops, SkCanvas*) override;
     65 
     66 private:
     67     SkString      fName;
     68     sk_sp<SkData> fEncodedPicture;
     69 
     70     typedef Benchmark INHERITED;
     71 };
     72 
     73 #endif//RecordingBench_DEFINED
     74