diff options
author | 2015-03-27 12:16:53 -0700 | |
---|---|---|
committer | 2015-03-27 12:16:53 -0700 | |
commit | a096d7a6d03662073f4cd46f7db5fe2cf5495c36 (patch) | |
tree | dcaf6ab6002e37a9525a82101ac640f2ead1bf46 /src/codec/SkCodec.cpp | |
parent | 135b7ecaa81018aa497da6ef8a8493263df456ef (diff) |
SkCodec: add wbmp class
Review URL: https://codereview.chromium.org/1006583005
Diffstat (limited to 'src/codec/SkCodec.cpp')
-rw-r--r-- | src/codec/SkCodec.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/codec/SkCodec.cpp b/src/codec/SkCodec.cpp index a49586ffeb..33cc9e1c00 100644 --- a/src/codec/SkCodec.cpp +++ b/src/codec/SkCodec.cpp @@ -10,6 +10,7 @@ #include "SkCodec_libbmp.h" #include "SkCodec_libico.h" #include "SkCodec_libpng.h" +#include "SkCodec_wbmp.h" #include "SkStream.h" struct DecoderProc { @@ -20,7 +21,8 @@ struct DecoderProc { static const DecoderProc gDecoderProcs[] = { { SkPngCodec::IsPng, SkPngCodec::NewFromStream }, { SkIcoCodec::IsIco, SkIcoCodec::NewFromStream }, - { SkBmpCodec::IsBmp, SkBmpCodec::NewFromStream } + { SkBmpCodec::IsBmp, SkBmpCodec::NewFromStream }, + { SkWbmpCodec::IsWbmp, SkWbmpCodec::NewFromStream } }; SkCodec* SkCodec::NewFromStream(SkStream* stream) { @@ -56,12 +58,16 @@ SkCodec::SkCodec(const SkImageInfo& info, SkStream* stream) , fNeedsRewind(false) {} -bool SkCodec::rewindIfNeeded() { +SkCodec::RewindState SkCodec::rewindIfNeeded() { // Store the value of fNeedsRewind so we can update it. Next read will // require a rewind. - const bool neededRewind = fNeedsRewind; + const bool needsRewind = fNeedsRewind; fNeedsRewind = true; - return !neededRewind || fStream->rewind(); + if (!needsRewind) { + return kNoRewindNecessary_RewindState; + } + return fStream->rewind() ? kRewound_RewindState + : kCouldNotRewind_RewindState; } SkScanlineDecoder* SkCodec::getScanlineDecoder(const SkImageInfo& dstInfo) { |