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; |
} |