| Index: bench/BitmapRegionDecoderBench.h
|
| diff --git a/bench/BitmapRegionDecoderBench.h b/bench/BitmapRegionDecoderBench.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..7be770f472e28768adec8aa43d2dd17d8202b7cd
|
| --- /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
|
|
|