Home | History | Annotate | Download | only in images
      1 
      2 /*
      3  * Copyright 2009 The Android Open Source Project
      4  *
      5  * Use of this source code is governed by a BSD-style license that can be
      6  * found in the LICENSE file.
      7  */
      8 
      9 
     10 #include "SkImageEncoder.h"
     11 #include "SkTRegistry.h"
     12 
     13 typedef SkTRegistry<SkImageEncoder*, SkImageEncoder::Type> EncodeReg;
     14 
     15 // Can't use the typedef here because of complex C++ corner cases
     16 template EncodeReg* SkTRegistry<SkImageEncoder*, SkImageEncoder::Type>::gHead;
     17 
     18 SkImageEncoder* SkImageEncoder::Create(Type t) {
     19     SkImageEncoder* codec = NULL;
     20     const EncodeReg* curr = EncodeReg::Head();
     21     while (curr) {
     22         if ((codec = curr->factory()(t)) != NULL) {
     23             return codec;
     24         }
     25         curr = curr->next();
     26     }
     27     return NULL;
     28 }
     29