Create GLSLUniformHandler class for gpu backend
[platform/upstream/libSkiaSharp.git] / bench / BitmapRegionDecoderBench.h
1 /*
2  * Copyright 2015 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 BitmapRegionDecoderBench_DEFINED
9 #define BitmapRegionDecoderBench_DEFINED
10
11 #include "Benchmark.h"
12 #include "SkBitmapRegionDecoder.h"
13 #include "SkData.h"
14 #include "SkImageInfo.h"
15 #include "SkRefCnt.h"
16 #include "SkString.h"
17
18 /**
19  *  Benchmark Android's BitmapRegionDecoder for a particular colorType, sampleSize, and subset.
20  *
21  *  fStrategy determines which of various implementations is to be used.
22  *
23  *  nanobench.cpp handles creating benchmarks for interesting scaled subsets.  We strive to test
24  *  on real use cases.
25  */
26 class BitmapRegionDecoderBench : public Benchmark {
27 public:
28     // Calls encoded->ref()
29     BitmapRegionDecoderBench(const char* basename, SkData* encoded,
30             SkBitmapRegionDecoder::Strategy strategy, SkColorType colorType,
31             uint32_t sampleSize, const SkIRect& subset);
32
33 protected:
34     const char* onGetName() override;
35     bool isSuitableFor(Backend backend) override;
36     void onDraw(int n, SkCanvas* canvas) override;
37     void onDelayedSetup() override;
38
39 private:
40     SkString                                       fName;
41     SkAutoTDelete<SkBitmapRegionDecoder>           fBRD;
42     SkAutoTUnref<SkData>                           fData;
43     const SkBitmapRegionDecoder::Strategy          fStrategy;
44     const SkColorType                              fColorType;
45     const uint32_t                                 fSampleSize;
46     const SkIRect                                  fSubset;
47     typedef Benchmark INHERITED;
48 };
49 #endif // BitmapRegionDecoderBench_DEFINED