Home | History | Annotate | Download | only in core
      1 /*
      2  * Copyright 2016 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 #ifndef SkImageDeserializer_DEFINED
      9 #define SkImageDeserializer_DEFINED
     10 
     11 #include "SkRefCnt.h"
     12 
     13 struct SkIRect;
     14 class SkData;
     15 class SkImage;
     16 
     17 class SK_API SkImageDeserializer {
     18 public:
     19     virtual ~SkImageDeserializer() {}
     20 
     21     /**
     22      *  Given a data containing serialized content, return an SkImage from it.
     23      *
     24      *  @param data The data containing the encoded image. The subclass may ref this for later
     25      *              decoding, or read it and process it immediately.
     26      *  @param subset Optional rectangle represent the subset of the encoded data that is being
     27      *                requested to be turned into an image.
     28      *  @return The new image, or nullptr on failure.
     29      *
     30      *  The default implementation is to call SkImage::MakeFromEncoded(...)
     31      */
     32     virtual sk_sp<SkImage> makeFromData(SkData*, const SkIRect* subset);
     33     virtual sk_sp<SkImage> makeFromMemory(const void* data, size_t length, const SkIRect* subset);
     34 };
     35 
     36 #endif
     37