Index: src/ports/SkImageDecoder_CG.cpp |
diff --git a/src/ports/SkImageDecoder_CG.cpp b/src/ports/SkImageDecoder_CG.cpp |
index 3e3075cc1330feb4e2723290c7edef675b38174e..91cf096ab546efc4a3acee1fc55973cc31628ef9 100644 |
--- a/src/ports/SkImageDecoder_CG.cpp |
+++ b/src/ports/SkImageDecoder_CG.cpp |
@@ -167,25 +167,6 @@ bool SkImageDecoder_CG::onDecode(SkStream* stream, SkBitmap* bm, Mode mode) { |
/////////////////////////////////////////////////////////////////////////////// |
-extern SkImageDecoder* image_decoder_from_stream(SkStreamRewindable*); |
- |
-SkImageDecoder* SkImageDecoder::Factory(SkStreamRewindable* stream) { |
- SkImageDecoder* decoder = image_decoder_from_stream(stream); |
- if (NULL == decoder) { |
- // If no image decoder specific to the stream exists, use SkImageDecoder_CG. |
- return SkNEW(SkImageDecoder_CG); |
- } else { |
- return decoder; |
- } |
-} |
- |
-///////////////////////////////////////////////////////////////////////// |
- |
-SkMovie* SkMovie::DecodeStream(SkStreamRewindable* stream) { |
- return NULL; |
-} |
- |
-///////////////////////////////////////////////////////////////////////// |
static size_t consumer_put(void* info, const void* buffer, size_t count) { |
SkWStream* stream = reinterpret_cast<SkWStream*>(info); |
@@ -283,14 +264,18 @@ bool SkImageEncoder_CG::onEncode(SkWStream* stream, const SkBitmap& bm, |
return CGImageDestinationFinalize(dst); |
} |
-/////////////////////////////////////////////////////////////////////////////// |
- |
-static SkImageEncoder* sk_imageencoder_cg_factory(SkImageEncoder::Type t) { |
+SkImageEncoder* SkCreateImageEncoder_CG(Type t) { |
+ SkImageEncoder* codec = NULL; |
+ if ((codec = CreateUserEncoder(t))) { |
+ return codec; |
+ } |
switch (t) { |
+#ifndef SK_BUILD_FOR_IOS |
case SkImageEncoder::kICO_Type: |
case SkImageEncoder::kBMP_Type: |
case SkImageEncoder::kGIF_Type: |
case SkImageEncoder::kJPEG_Type: |
+#endif |
case SkImageEncoder::kPNG_Type: |
break; |
default: |
@@ -299,19 +284,6 @@ static SkImageEncoder* sk_imageencoder_cg_factory(SkImageEncoder::Type t) { |
return SkNEW_ARGS(SkImageEncoder_CG, (t)); |
} |
-static SkImageEncoder_EncodeReg gEReg(sk_imageencoder_cg_factory); |
- |
-#ifdef SK_BUILD_FOR_IOS |
-class SkPNGImageEncoder_IOS : public SkImageEncoder_CG { |
-public: |
- SkPNGImageEncoder_IOS() |
- : SkImageEncoder_CG(kPNG_Type) { |
- } |
-}; |
- |
-DEFINE_ENCODER_CREATOR(PNGImageEncoder_IOS); |
-#endif |
- |
struct FormatConversion { |
CFStringRef fUTType; |
SkImageDecoder::Format fFormat; |
@@ -337,7 +309,7 @@ static SkImageDecoder::Format UTType_to_Format(const CFStringRef uttype) { |
return SkImageDecoder::kUnknown_Format; |
} |
-static SkImageDecoder::Format get_format_cg(SkStreamRewindable* stream) { |
+SkImageDecoder::Format SkDetectFormatImageDecoder_CG(SkStreamRewindable* stream) { |
CGImageSourceRef imageSrc = SkStreamToCGImageSource(stream); |
if (NULL == imageSrc) { |
@@ -352,4 +324,9 @@ static SkImageDecoder::Format get_format_cg(SkStreamRewindable* stream) { |
return UTType_to_Format(name); |
} |
-static SkImageDecoder_FormatReg gFormatReg(get_format_cg); |
+SkImageDecoder* SkCreateImageDecoder_CG(SkStreamRewindable* stream) { |
+ if (SkDetectFormatImageDecoder_CG(stream) != SkImageDecoder::kUnknown_Format) { |
+ return SkNEW(SkImageDecoder_CG); |
+ } |
+ return NULL; |
+} |