aboutsummaryrefslogtreecommitdiffhomepage
path: root/bench/subset/SubsetSingleBench.h
diff options
context:
space:
mode:
authorGravatar msarett <msarett@google.com>2015-06-09 13:56:10 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-06-09 13:56:10 -0700
commitb23e6aa6767816ac4bc6c191e78ef62d6e765671 (patch)
treeeca20bbc78e59cf624be66d5fb3f5a71aefc5c12 /bench/subset/SubsetSingleBench.h
parentc15d9579d654f14cb16a3ced7158cd93950d48c8 (diff)
Subset decoding benchmarks
It was my goal to create benchmarks that could measure all of the use cases that we have identified. I think single subsets, translating, and scaling are the important ones. It might be a good idea to discuss the document in greater detail as well. I just wanted to share this to aid the discussion. https://docs.google.com/a/google.com/document/d/1OxW96GDMAlw6dnzNXmiNX-F9oDBBlGXzSsgd0DMIkbI/edit?usp=sharing BUG=skia: Review URL: https://codereview.chromium.org/1160953002
Diffstat (limited to 'bench/subset/SubsetSingleBench.h')
-rw-r--r--bench/subset/SubsetSingleBench.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/bench/subset/SubsetSingleBench.h b/bench/subset/SubsetSingleBench.h
new file mode 100644
index 0000000000..1484a51258
--- /dev/null
+++ b/bench/subset/SubsetSingleBench.h
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2015 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include "Benchmark.h"
+#include "SkImageDecoder.h"
+#include "SkImageInfo.h"
+#include "SkStream.h"
+#include "SkString.h"
+
+/*
+ *
+ * This benchmark is designed to test the performance of subset decoding.
+ * It uses an input width, height, left, and top to decode a single subset.
+ *
+ */
+class SubsetSingleBench : public Benchmark {
+public:
+
+ SubsetSingleBench(const SkString& path,
+ SkColorType colorType,
+ uint32_t subsetWidth,
+ uint32_t subsetHeight,
+ uint32_t offsetLeft,
+ uint32_t offsetTop,
+ bool useCodec);
+
+protected:
+ const char* onGetName() override;
+ bool isSuitableFor(Backend backend) override;
+ void onDraw(const int n, SkCanvas* canvas) override;
+
+private:
+ SkString fName;
+ SkColorType fColorType;
+ const uint32_t fSubsetWidth;
+ const uint32_t fSubsetHeight;
+ const uint32_t fOffsetLeft;
+ const uint32_t fOffsetTop;
+ const bool fUseCodec;
+ SkAutoTDelete<SkMemoryStream> fStream;
+ typedef Benchmark INHERITED;
+};