Index: src/images/SkImageDecoder_libpng.cpp |
diff --git a/src/images/SkImageDecoder_libpng.cpp b/src/images/SkImageDecoder_libpng.cpp |
index b6aa329104288aead5ae32f788e0f80b9aba153d..e942f21c787c5e01f6d11ea392309ca6aad562b7 100644 |
--- a/src/images/SkImageDecoder_libpng.cpp |
+++ b/src/images/SkImageDecoder_libpng.cpp |
@@ -91,7 +91,7 @@ private: |
SkColorTable **colorTablep); |
bool getBitmapConfig(png_structp png_ptr, png_infop info_ptr, |
SkBitmap::Config *config, bool *hasAlpha, |
- bool *doDither, SkPMColor *theTranspColor); |
+ SkPMColor *theTranspColor); |
typedef SkImageDecoder INHERITED; |
}; |
@@ -294,10 +294,9 @@ bool SkPNGImageDecoder::onDecode(SkStream* sk_stream, SkBitmap* decodedBitmap, |
SkBitmap::Config config; |
bool hasAlpha = false; |
- bool doDither = this->getDitherImage(); |
SkPMColor theTranspColor = 0; // 0 tells us not to try to match |
- if (!getBitmapConfig(png_ptr, info_ptr, &config, &hasAlpha, &doDither, &theTranspColor)) { |
+ if (!this->getBitmapConfig(png_ptr, info_ptr, &config, &hasAlpha, &theTranspColor)) { |
return false; |
} |
@@ -377,8 +376,7 @@ bool SkPNGImageDecoder::onDecode(SkStream* sk_stream, SkBitmap* decodedBitmap, |
upscale png's palette to a direct model |
*/ |
SkAutoLockColors ctLock(colorTable); |
- if (!sampler.begin(decodedBitmap, sc, doDither, ctLock.colors(), |
- this->getRequireUnpremultipliedColors())) { |
+ if (!sampler.begin(decodedBitmap, sc, *this, ctLock.colors())) { |
return false; |
} |
const int height = decodedBitmap->height(); |
@@ -446,7 +444,6 @@ bool SkPNGImageDecoder::onDecode(SkStream* sk_stream, SkBitmap* decodedBitmap, |
bool SkPNGImageDecoder::getBitmapConfig(png_structp png_ptr, png_infop info_ptr, |
SkBitmap::Config* SK_RESTRICT configp, |
bool* SK_RESTRICT hasAlphap, |
- bool* SK_RESTRICT doDitherp, |
SkPMColor* SK_RESTRICT theTranspColorp) { |
png_uint_32 origWidth, origHeight; |
int bitDepth, colorType; |
@@ -456,7 +453,7 @@ bool SkPNGImageDecoder::getBitmapConfig(png_structp png_ptr, png_infop info_ptr, |
// check for sBIT chunk data, in case we should disable dithering because |
// our data is not truely 8bits per component |
png_color_8p sig_bit; |
- if (*doDitherp && png_get_sBIT(png_ptr, info_ptr, &sig_bit)) { |
+ if (this->getDitherImage() && png_get_sBIT(png_ptr, info_ptr, &sig_bit)) { |
#if 0 |
SkDebugf("----- sBIT %d %d %d %d\n", sig_bit->red, sig_bit->green, |
sig_bit->blue, sig_bit->alpha); |
@@ -465,7 +462,7 @@ bool SkPNGImageDecoder::getBitmapConfig(png_structp png_ptr, png_infop info_ptr, |
if (pos_le(sig_bit->red, SK_R16_BITS) && |
pos_le(sig_bit->green, SK_G16_BITS) && |
pos_le(sig_bit->blue, SK_B16_BITS)) { |
- *doDitherp = false; |
+ this->setDitherImage(false); |
} |
} |
@@ -724,10 +721,9 @@ bool SkPNGImageDecoder::onDecodeSubset(SkBitmap* bm, const SkIRect& region) { |
SkBitmap::Config config; |
bool hasAlpha = false; |
- bool doDither = this->getDitherImage(); |
SkPMColor theTranspColor = 0; // 0 tells us not to try to match |
- if (!getBitmapConfig(png_ptr, info_ptr, &config, &hasAlpha, &doDither, &theTranspColor)) { |
+ if (!this->getBitmapConfig(png_ptr, info_ptr, &config, &hasAlpha, &theTranspColor)) { |
return false; |
} |
@@ -834,8 +830,7 @@ bool SkPNGImageDecoder::onDecodeSubset(SkBitmap* bm, const SkIRect& region) { |
upscale png's palette to a direct model |
*/ |
SkAutoLockColors ctLock(colorTable); |
- if (!sampler.begin(&decodedBitmap, sc, doDither, ctLock.colors(), |
- this->getRequireUnpremultipliedColors())) { |
+ if (!sampler.begin(&decodedBitmap, sc, *this, ctLock.colors())) { |
return false; |
} |
const int height = decodedBitmap.height(); |