diff options
Diffstat (limited to 'bench/BitmapRegionDecoderBench.h')
-rw-r--r-- | bench/BitmapRegionDecoderBench.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/bench/BitmapRegionDecoderBench.h b/bench/BitmapRegionDecoderBench.h new file mode 100644 index 0000000000..7be770f472 --- /dev/null +++ b/bench/BitmapRegionDecoderBench.h @@ -0,0 +1,49 @@ +/* + * Copyright 2015 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef BitmapRegionDecoderBench_DEFINED +#define BitmapRegionDecoderBench_DEFINED + +#include "Benchmark.h" +#include "SkBitmapRegionDecoderInterface.h" +#include "SkData.h" +#include "SkImageInfo.h" +#include "SkRefCnt.h" +#include "SkString.h" + +/** + * Benchmark Android's BitmapRegionDecoder for a particular colorType, sampleSize, and subset. + * + * fStrategy determines which of various implementations is to be used. + * + * nanobench.cpp handles creating benchmarks for interesting scaled subsets. We strive to test + * on real use cases. + */ +class BitmapRegionDecoderBench : public Benchmark { +public: + // Calls encoded->ref() + BitmapRegionDecoderBench(const char* basename, SkData* encoded, + SkBitmapRegionDecoderInterface::Strategy strategy, SkColorType colorType, + uint32_t sampleSize, const SkIRect& subset); + +protected: + const char* onGetName() override; + bool isSuitableFor(Backend backend) override; + void onDraw(const int n, SkCanvas* canvas) override; + void onPreDraw() override; + +private: + SkString fName; + SkAutoTDelete<SkBitmapRegionDecoderInterface> fBRD; + SkAutoTUnref<SkData> fData; + const SkBitmapRegionDecoderInterface::Strategy fStrategy; + const SkColorType fColorType; + const uint32_t fSampleSize; + const SkIRect fSubset; + typedef Benchmark INHERITED; +}; +#endif // BitmapRegionDecoderBench_DEFINED |