• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 SkRawCodec_DEFINED
9 #define SkRawCodec_DEFINED
10 
11 #include "SkCodec.h"
12 #include "SkImageInfo.h"
13 #include "SkTypes.h"
14 
15 class SkDngImage;
16 class SkStream;
17 
18 /*
19  *
20  * This class implements the decoding for RAW images
21  *
22  */
23 class SkRawCodec : public SkCodec {
24 public:
25 
26     /*
27      * Creates a RAW decoder
28      * Takes ownership of the stream
29      */
30     static SkCodec* NewFromStream(SkStream*);
31 
32     ~SkRawCodec() override;
33 
34 protected:
35 
36     Result onGetPixels(const SkImageInfo& dstInfo, void* dst, size_t dstRowBytes, const Options&,
37             SkPMColor*, int*, int*) override;
38 
onGetEncodedFormat()39     SkEncodedFormat onGetEncodedFormat() const override {
40         return kRAW_SkEncodedFormat;
41     }
42 
43     SkISize onGetScaledDimensions(float desiredScale) const override;
44 
45     bool onDimensionsSupported(const SkISize&) override;
46 
47 private:
48 
49     /*
50      * Creates an instance of the decoder
51      * Called only by NewFromStream, takes ownership of dngImage.
52      */
53     SkRawCodec(SkDngImage* dngImage);
54 
55     SkAutoTDelete<SkDngImage> fDngImage;
56 
57     typedef SkCodec INHERITED;
58 };
59 
60 #endif
61