aboutsummaryrefslogtreecommitdiffhomepage
path: root/bench/CodecBench.cpp
diff options
context:
space:
mode:
authorGravatar scroggo <scroggo@google.com>2015-04-02 13:22:38 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-04-02 13:22:38 -0700
commit21027994192f395bbd1507558b84f59b3c7cf0da (patch)
treea69071cb3aa375d65d913a884051fd7b521a4709 /bench/CodecBench.cpp
parent028a4135aa6404ccd3a494813befe6e1a35e5e6c (diff)
Test SkCodec to kIndex8 in nanobench.
BUG=skia:3257 BUG=skia:3475 Review URL: https://codereview.chromium.org/1051973002
Diffstat (limited to 'bench/CodecBench.cpp')
-rw-r--r--bench/CodecBench.cpp20
1 files changed, 17 insertions, 3 deletions
diff --git a/bench/CodecBench.cpp b/bench/CodecBench.cpp
index e68c5de6fa..debda712b7 100644
--- a/bench/CodecBench.cpp
+++ b/bench/CodecBench.cpp
@@ -48,18 +48,32 @@ bool CodecBench::isSuitableFor(Backend backend) {
void CodecBench::onPreDraw() {
SkAutoTDelete<SkCodec> codec(SkCodec::NewFromData(fData));
- fBitmap.allocPixels(codec->getInfo().makeColorType(fColorType));
+
+ fInfo = codec->getInfo().makeColorType(fColorType);
+ SkAlphaType alphaType;
+ // Caller should not have created this CodecBench if the alpha type was
+ // invalid.
+ SkAssertResult(SkColorTypeValidateAlphaType(fColorType, fInfo.alphaType(),
+ &alphaType));
+ if (alphaType != fInfo.alphaType()) {
+ fInfo = fInfo.makeAlphaType(alphaType);
+ }
+
+ fPixelStorage.reset(fInfo.getSafeSize(fInfo.minRowBytes()));
}
void CodecBench::onDraw(const int n, SkCanvas* canvas) {
SkAutoTDelete<SkCodec> codec;
+ SkPMColor colorTable[256];
+ int colorCount;
for (int i = 0; i < n; i++) {
+ colorCount = 256;
codec.reset(SkCodec::NewFromData(fData));
#ifdef SK_DEBUG
const SkImageGenerator::Result result =
#endif
- // fBitmap.info() was set to use fColorType in onPreDraw.
- codec->getPixels(fBitmap.info(), fBitmap.getPixels(), fBitmap.rowBytes());
+ codec->getPixels(fInfo, fPixelStorage.get(), fInfo.minRowBytes(),
+ NULL, colorTable, &colorCount);
SkASSERT(result == SkImageGenerator::kSuccess
|| result == SkImageGenerator::kIncompleteInput);
}