aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ports/SkImageDecoder_CG.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ports/SkImageDecoder_CG.cpp')
-rw-r--r--src/ports/SkImageDecoder_CG.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/ports/SkImageDecoder_CG.cpp b/src/ports/SkImageDecoder_CG.cpp
index 8956acaebc..3f850b544d 100644
--- a/src/ports/SkImageDecoder_CG.cpp
+++ b/src/ports/SkImageDecoder_CG.cpp
@@ -104,11 +104,13 @@ bool SkImageDecoder_CG::onDecode(SkStream* stream, SkBitmap* bm, Mode mode) {
case kCGImageAlphaNoneSkipLast:
case kCGImageAlphaNoneSkipFirst:
SkASSERT(SkBitmap::ComputeIsOpaque(*bm));
- bm->setIsOpaque(true);
+ bm->setAlphaType(kOpaque_SkAlphaType);
break;
default:
// we don't know if we're opaque or not, so compute it.
- bm->computeAndSetOpaquePredicate();
+ if (SkBitmap::ComputeIsOpaque(*bm)) {
+ bm->setAlphaType(kOpaque_SkAlphaType);
+ }
}
if (!bm->isOpaque() && this->getRequireUnpremultipliedColors()) {
// CGBitmapContext does not support unpremultiplied, so the image has been premultiplied.
@@ -119,6 +121,7 @@ bool SkImageDecoder_CG::onDecode(SkStream* stream, SkBitmap* bm, Mode mode) {
*addr = unpremultiply_pmcolor(*addr);
}
}
+ bm->setAlphaType(kUnpremul_SkAlphaType);
}
bm->unlockPixels();
return true;