Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1879)

Unified Diff: src/ports/SkImageDecoder_CG.cpp

Issue 670453002: Remove image decoder and encoder autoregistration (Closed) Base URL: https://skia.googlesource.com/skia.git@separate-image-decoder-01-skpicture
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
+}

Powered by Google App Engine
This is Rietveld 408576698