Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(806)

Unified Diff: bench/BitmapRegionDecoderBench.cpp

Issue 1418093006: Refactor SkBitmapRegionDecoderInterface for Android (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: bench/BitmapRegionDecoderBench.cpp
diff --git a/bench/BitmapRegionDecoderBench.cpp b/bench/BitmapRegionDecoderBench.cpp
index 092693619bb8be5796a9de50be373dde4e9eb186..c6197a20e25c0db960645eccf077a47e356e39de 100644
--- a/bench/BitmapRegionDecoderBench.cpp
+++ b/bench/BitmapRegionDecoderBench.cpp
@@ -20,6 +20,7 @@ BitmapRegionDecoderBench::BitmapRegionDecoderBench(const char* baseName, SkData*
, fColorType(colorType)
, fSampleSize(sampleSize)
, fSubset(subset)
+ , fColorTable(nullptr)
{
// Choose a useful name for the region decoding strategy
const char* strategyName;
@@ -46,6 +47,11 @@ BitmapRegionDecoderBench::BitmapRegionDecoderBench(const char* baseName, SkData*
if (1 != sampleSize) {
fName.appendf("_%.3f", get_scale_from_sample_size(sampleSize));
}
+
+ if (kIndex_8_SkColorType == fColorType) {
+ SkPMColor colors[256];
+ fColorTable.reset(new SkColorTable(colors, 256));
+ }
}
const char* BitmapRegionDecoderBench::onGetName() {
@@ -61,10 +67,23 @@ void BitmapRegionDecoderBench::onDelayedSetup() {
}
void BitmapRegionDecoderBench::onDraw(int n, SkCanvas* canvas) {
- SkAutoTDelete<SkBitmap> bitmap;
for (int i = 0; i < n; i++) {
- bitmap.reset(fBRD->decodeRegion(fSubset.left(), fSubset.top(), fSubset.width(),
- fSubset.height(), fSampleSize, fColorType));
- SkASSERT(nullptr != bitmap.get());
+ SkImageInfo info;
+#ifdef SK_DEBUG
+ bool result =
+#endif
+ fBRD->prepareRegion(fSubset, fSampleSize, fColorType, false, &info);
scroggo 2015/10/27 15:00:50 You could also change this to: SkAssertResult(f
+ SkASSERT(result);
+
+ SkBitmap bitmap;
+ if (SkBitmapRegionDecoderInterface::kOriginal_Strategy != fStrategy) {
+ bitmap.allocPixels(info, nullptr, fColorTable);
+ }
+
+#ifdef SK_DEBUG
+ result =
+#endif
+ fBRD->decodeRegion(bitmap);
+ SkASSERT(result);
}
}

Powered by Google App Engine
This is Rietveld 408576698