diff options
author | 2013-03-14 14:42:18 +0000 | |
---|---|---|
committer | 2013-03-14 14:42:18 +0000 | |
commit | a936e37cc76614868f5b489395bceeb340cc04cd (patch) | |
tree | 9cb0b81655baa1dc494079d2ae2aee37b3a084c2 /src/images/SkImageDecoder_libbmp.cpp | |
parent | 5439ea2e193c96274fb00ba0564b239e233d60a2 (diff) |
Upstream Android modifications to the image encoders/decoders.
This CL does not update the libjpeg as that change is large enough
to warrant its own CL.
Author: djsollen@google.com
Reviewed By: reed@google.com,robertphillips@google.com,scroggo@google.com
Review URL: https://chromiumcodereview.appspot.com/12604006
git-svn-id: http://skia.googlecode.com/svn/trunk@8155 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/images/SkImageDecoder_libbmp.cpp')
-rw-r--r-- | src/images/SkImageDecoder_libbmp.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/images/SkImageDecoder_libbmp.cpp b/src/images/SkImageDecoder_libbmp.cpp index 3aa834a6b5..1dcea8ad64 100644 --- a/src/images/SkImageDecoder_libbmp.cpp +++ b/src/images/SkImageDecoder_libbmp.cpp @@ -19,12 +19,15 @@ class SkBMPImageDecoder : public SkImageDecoder { public: SkBMPImageDecoder() {} - virtual Format getFormat() const { + virtual Format getFormat() const SK_OVERRIDE { return kBMP_Format; } protected: - virtual bool onDecode(SkStream* stream, SkBitmap* bm, Mode mode); + virtual bool onDecode(SkStream* stream, SkBitmap* bm, Mode mode) SK_OVERRIDE; + +private: + typedef SkImageDecoder INHERITED; }; /////////////////////////////////////////////////////////////////////////////// @@ -115,11 +118,18 @@ bool SkBMPImageDecoder::onDecode(SkStream* stream, SkBitmap* bm, Mode mode) { SkScaledBitmapSampler sampler(width, height, getSampleSize()); - bm->setConfig(config, sampler.scaledWidth(), sampler.scaledHeight()); - bm->setIsOpaque(true); if (justBounds) { + bm->setConfig(config, sampler.scaledWidth(), sampler.scaledHeight()); + bm->setIsOpaque(true); return true; } + // No Bitmap reuse supported for this format + if (!bm->isNull()) { + return false; + } + + bm->setConfig(config, sampler.scaledWidth(), sampler.scaledHeight()); + bm->setIsOpaque(true); if (!this->allocPixelRef(bm, NULL)) { return false; |