Line data Source code
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 0 : 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
|