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

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, 1 month 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
« no previous file with comments | « src/images/SkImageDecoder_wbmp.cpp ('k') | src/images/SkImageEncoder_argb.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/images/SkImageEncoder_Factory.cpp
diff --git a/src/images/SkImageEncoder_Factory.cpp b/src/images/SkImageEncoder_Factory.cpp
index 2931d12eae7c42042c53b8f22a83aaae2bc7094a..c4cd522d57057d6533c18d903102c935f124fccb 100644
--- a/src/images/SkImageEncoder_Factory.cpp
+++ b/src/images/SkImageEncoder_Factory.cpp
@@ -7,17 +7,45 @@
*/
#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_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
+#if defined(SK_BUILD_FOR_WIN)
+ if ((codec = SkCreateImageEncoder_WIC(t)) != NULL) {
+ return codec;
+ }
+#elif defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS)
+ if ((codec = SkCreateImageEncoder_CG(t)) != NULL) {
+ return codec;
}
+#endif
return NULL;
}
« no previous file with comments | « src/images/SkImageDecoder_wbmp.cpp ('k') | src/images/SkImageEncoder_argb.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698