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