From a096d7a6d03662073f4cd46f7db5fe2cf5495c36 Mon Sep 17 00:00:00 2001 From: halcanary Date: Fri, 27 Mar 2015 12:16:53 -0700 Subject: SkCodec: add wbmp class Review URL: https://codereview.chromium.org/1006583005 --- src/codec/SkCodec.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'src/codec/SkCodec.cpp') 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) { -- cgit v1.2.3