Chromium Code Reviews| Index: src/images/SkImageDecoder_libbmp.cpp |
| diff --git a/src/images/SkImageDecoder_libbmp.cpp b/src/images/SkImageDecoder_libbmp.cpp |
| index 7b87e40039d48b582610ab271b6def44bac1da64..b033efee70429d198855fc61c797002ad9915033 100644 |
| --- a/src/images/SkImageDecoder_libbmp.cpp |
| +++ b/src/images/SkImageDecoder_libbmp.cpp |
| @@ -6,10 +6,10 @@ |
| * found in the LICENSE file. |
| */ |
| +#include "SkImageDecoder_libbmp.h" |
| #include "bmpdecoderhelper.h" |
| #include "SkColorPriv.h" |
| -#include "SkImageDecoder.h" |
| #include "SkScaledBitmapSampler.h" |
| #include "SkStream.h" |
| #include "SkStreamPriv.h" |
| @@ -30,40 +30,6 @@ private: |
| typedef SkImageDecoder INHERITED; |
| }; |
| -/////////////////////////////////////////////////////////////////////////////// |
| -DEFINE_DECODER_CREATOR(BMPImageDecoder); |
| -/////////////////////////////////////////////////////////////////////////////// |
| - |
| -static bool is_bmp(SkStreamRewindable* stream) { |
| - static const char kBmpMagic[] = { 'B', 'M' }; |
| - |
| - |
| - char buffer[sizeof(kBmpMagic)]; |
| - |
| - return stream->read(buffer, sizeof(kBmpMagic)) == sizeof(kBmpMagic) && |
| - !memcmp(buffer, kBmpMagic, sizeof(kBmpMagic)); |
| -} |
| - |
| -static SkImageDecoder* sk_libbmp_dfactory(SkStreamRewindable* stream) { |
| - if (is_bmp(stream)) { |
| - return SkNEW(SkBMPImageDecoder); |
| - } |
| - return NULL; |
| -} |
| - |
| -static SkImageDecoder_DecodeReg gReg(sk_libbmp_dfactory); |
| - |
| -static SkImageDecoder::Format get_format_bmp(SkStreamRewindable* stream) { |
| - if (is_bmp(stream)) { |
| - return SkImageDecoder::kBMP_Format; |
| - } |
| - return SkImageDecoder::kUnknown_Format; |
| -} |
| - |
| -static SkImageDecoder_FormatReg gFormatReg(get_format_bmp); |
| - |
| -/////////////////////////////////////////////////////////////////////////////// |
| - |
| class SkBmpDecoderCallback : public image_codec::BmpDecoderCallback { |
| public: |
| // we don't copy the bitmap, just remember the pointer |
| @@ -160,3 +126,20 @@ bool SkBMPImageDecoder::onDecode(SkStream* stream, SkBitmap* bm, Mode mode) { |
| } |
| return true; |
| } |
| + |
| +SkImageDecoder::Format SkDetectFormatBMPImageDecoder(SkStreamRewindable* stream) { |
| + static const char kBmpMagic[] = { 'B', 'M' }; |
| + char buffer[sizeof(kBmpMagic)]; |
| + if (stream->read(buffer, sizeof(kBmpMagic)) == sizeof(kBmpMagic) && |
| + !memcmp(buffer, kBmpMagic, sizeof(kBmpMagic))) { |
|
scroggo
2014/11/12 18:00:12
I don't think it's in the style guide, but this is
Kimmo Kinnunen
2014/11/18 08:29:45
Right..
|
| + return SkImageDecoder::kBMP_Format; |
| + } |
| + return SkImageDecoder::kUnknown_Format; |
| +} |
| + |
| +SkImageDecoder* SkCreateBMPImageDecoder(SkStreamRewindable* stream) { |
| + if (SkDetectFormatBMPImageDecoder(stream) == SkImageDecoder::kBMP_Format) { |
| + return SkNEW(SkBMPImageDecoder); |
| + } |
| + return NULL; |
| +} |