Home | History | Annotate | Download | only in images
      1 /*
      2  * Copyright 2013 Google Inc.
      3  *
      4  * Use of this source code is governed by a BSD-style license that can be
      5  * found in the LICENSE file.
      6  */
      7 
      8 #include "SkForceLinking.h"
      9 #include "SkImageDecoder.h"
     10 
     11 // This method is required to fool the linker into not discarding the pre-main
     12 // initialization and registration of the decoder classes. Passing true will
     13 // cause memory leaks.
     14 int SkForceLinking(bool doNotPassTrue) {
     15     if (doNotPassTrue) {
     16         SkASSERT(false);
     17         CreateJPEGImageDecoder();
     18         CreateWEBPImageDecoder();
     19         CreateBMPImageDecoder();
     20         CreateICOImageDecoder();
     21         CreateWBMPImageDecoder();
     22         // Only link hardware texture codecs on platforms that build them. See images.gyp
     23 #ifndef SK_BUILD_FOR_ANDROID_FRAMEWORK
     24         CreatePKMImageDecoder();
     25         CreateKTXImageDecoder();
     26         CreateASTCImageDecoder();
     27 #endif
     28         // Only link GIF and PNG on platforms that build them. See images.gyp
     29 #if !defined(SK_BUILD_FOR_MAC) && !defined(SK_BUILD_FOR_WIN) && !defined(SK_BUILD_FOR_NACL) \
     30         && !defined(SK_BUILD_FOR_IOS)
     31         CreateGIFImageDecoder();
     32 #endif
     33 #if !defined(SK_BUILD_FOR_MAC) && !defined(SK_BUILD_FOR_WIN) && !defined(SK_BUILD_FOR_IOS)
     34         CreatePNGImageDecoder();
     35 #endif
     36 #if defined(SK_BUILD_FOR_IOS)
     37         CreatePNGImageEncoder_IOS();
     38 #endif
     39         return -1;
     40     }
     41     return 0;
     42 }
     43