123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- /*
- * 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 "bench/Benchmark.h"
- #include "include/android/SkBitmapRegionDecoder.h"
- #include "include/core/SkData.h"
- #include "include/core/SkImageInfo.h"
- #include "include/core/SkRefCnt.h"
- #include "include/core/SkString.h"
- /**
- * Benchmark Android's BitmapRegionDecoder for a particular colorType, sampleSize, and subset.
- *
- * 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, SkColorType colorType,
- uint32_t sampleSize, const SkIRect& subset);
- protected:
- const char* onGetName() override;
- bool isSuitableFor(Backend backend) override;
- void onDraw(int n, SkCanvas* canvas) override;
- void onDelayedSetup() override;
- private:
- SkString fName;
- std::unique_ptr<SkBitmapRegionDecoder> fBRD;
- sk_sp<SkData> fData;
- const SkColorType fColorType;
- const uint32_t fSampleSize;
- const SkIRect fSubset;
- typedef Benchmark INHERITED;
- };
- #endif // BitmapRegionDecoderBench_DEFINED
|