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

Unified Diff: src/images/SkImageEncoder_Factory.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/images/SkImageEncoder_Factory.cpp
diff --git a/src/images/SkImageEncoder_Factory.cpp b/src/images/SkImageEncoder_Factory.cpp
index 2931d12eae7c42042c53b8f22a83aaae2bc7094a..526cfa370b97d95c1474bb7e7c6d1ab3dd4269fb 100644
--- a/src/images/SkImageEncoder_Factory.cpp
+++ b/src/images/SkImageEncoder_Factory.cpp
@@ -8,16 +8,47 @@
#include "SkImageEncoder.h"
-template SkImageEncoder_EncodeReg* SkImageEncoder_EncodeReg::gHead;
+#include "SkImageDecoder_libpng.h"
+#include "SkImageDecoder_libjpeg.h"
+#include "SkImageDecoder_libwebp.h"
+#if !defined(SK_BUILD_FOR_ANDROID_FRAMEWORK)
+#include "SkImageDecoder_ktx.h"
+#endif
+#if defined(SK_BUILD_FOR_WIN)
+#include "SkImageDecoder_WIC.h"
+#endif
+#if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS)
+#include "SkImageDecoder_CG.h"
+#endif
SkImageEncoder* SkImageEncoder::Create(Type t) {
SkImageEncoder* codec = NULL;
- const SkImageEncoder_EncodeReg* curr = SkImageEncoder_EncodeReg::Head();
- while (curr) {
- if ((codec = curr->factory()(t)) != NULL) {
- return codec;
- }
- curr = curr->next();
+#if defined(SK_BUILD_FOR_WIN)
Kimmo Kinnunen 2014/10/20 14:03:39 I can double-check the encoder order and fix poten
scroggo 2014/11/12 18:00:13 FYI, we have compile bots for windows and mac that
Kimmo Kinnunen 2014/11/18 08:29:45 I know, but I don't have access to run the bots ma
scroggo 2014/11/18 16:52:23 That's annoying. Sorry, I didn't realize you could
+ if ((codec = SkCreateImageEncoder_WIC(t)) != NULL) {
+ return codec;
}
+#endif
+#if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS)
+ if ((codec = SkCreateImageEncoder_CG(t)) != NULL) {
+ return codec;
+ }
+#endif
+#if !defined(SK_BUILD_FOR_MAC) && !defined(SK_BUILD_FOR_IOS) && !defined(SK_BUILD_FOR_WIN)
+ if ((codec = SkCreatePNGImageEncoder(t)) != NULL) {
+ return codec;
+ }
+#endif
+ if ((codec = SkCreateJPEGImageEncoder(t)) != NULL) {
+ return codec;
+ }
+ if ((codec = SkCreateWEBPImageEncoder(t)) != NULL) {
+ return codec;
+ }
+#if !defined(SK_BUILD_FOR_ANDROID_FRAMEWORK)
+ if ((codec = SkCreateKTXImageEncoder(t)) != NULL) {
+ return codec;
+ }
+#endif
+
return NULL;
}

Powered by Google App Engine
This is Rietveld 408576698