Index: bench/BitmapRegionDecoderBench.h |
diff --git a/bench/BitmapRegionDecoderBench.h b/bench/BitmapRegionDecoderBench.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..1e32d994a85466e50594700935e18c442cff85ff |
--- /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" |
+ |
+/** |
+ * Time SkBitmapRegionDecoder. |
+ * |
+ * The aim of this benchmark is not to duplicate the use cases that we test in the SubsetBenches. |
+ * Instead we assume that the SubsetBenches give us enough information to choose an appropriate |
+ * approach to subsetting. |
+ * |
+ * This benchmark combines subsetting with scaling, allowing us to test the speed of several |
+ * different approaches to scaling while subsetting. |
+ */ |
+class BitmapRegionDecoderBench : public Benchmark { |
+public: |
+ // Calls encoded->ref() |
+ BitmapRegionDecoderBench(SkString basename, SkData* encoded, |
scroggo
2015/09/17 20:05:38
Probably want to use a const ref for basename. (Al
msarett
2015/09/18 13:22:30
I like const char*, since that is what we're using
|
+ 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; |
+ |
+private: |
+ SkString fName; |
+ SkAutoTUnref<SkData> fData; |
+ const SkBitmapRegionDecoderInterface::Strategy fStrategy; |
+ const SkColorType fColorType; |
+ const uint32_t fSampleSize; |
+ const SkIRect fSubset; |
+ typedef Benchmark INHERITED; |
+}; |
+#endif // BitmapRegionDecoderBench_DEFINED |