diff options
author | yujieqin <yujieqin@google.com> | 2016-01-25 08:26:16 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-01-25 08:26:16 -0800 |
commit | 916de9ff18cf3caa29c0821b55244060b6f84f9d (patch) | |
tree | 2eeca150de2fe391a8498339138e135154f7bcc1 /src/codec/SkRawCodec.h | |
parent | d03b7ae1e273e871d951c94fd9626d62acee9379 (diff) |
Add RAW decoding into Skia.
TBR=reed@google.com
BUG=skia:
(Based on the work from ebrauer in https://codereview.chromium.org/1459473007)
(Based on the work from adaubert in https://codereview.chromium.org/1494003003)
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1520403003
Committed: https://skia.googlesource.com/skia/+/6bd8639f8c142eedf543f4e5f3b02d2bf11df308
Review URL: https://codereview.chromium.org/1520403003
Diffstat (limited to 'src/codec/SkRawCodec.h')
-rw-r--r-- | src/codec/SkRawCodec.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/codec/SkRawCodec.h b/src/codec/SkRawCodec.h new file mode 100644 index 0000000000..42755c3ef1 --- /dev/null +++ b/src/codec/SkRawCodec.h @@ -0,0 +1,60 @@ +/* + * Copyright 2016 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef SkRawCodec_DEFINED +#define SkRawCodec_DEFINED + +#include "SkCodec.h" +#include "SkImageInfo.h" +#include "SkTypes.h" + +class SkDngImage; +class SkStream; + +/* + * + * This class implements the decoding for RAW images + * + */ +class SkRawCodec : public SkCodec { +public: + + /* + * Creates a RAW decoder + * Takes ownership of the stream + */ + static SkCodec* NewFromStream(SkStream*); + + ~SkRawCodec() override; + +protected: + + Result onGetPixels(const SkImageInfo& dstInfo, void* dst, size_t dstRowBytes, const Options&, + SkPMColor*, int*, int*) override; + + SkEncodedFormat onGetEncodedFormat() const override { + return kRAW_SkEncodedFormat; + } + + SkISize onGetScaledDimensions(float desiredScale) const override; + + bool onDimensionsSupported(const SkISize&) override; + +private: + + /* + * Creates an instance of the decoder + * Called only by NewFromStream, takes ownership of dngImage. + */ + SkRawCodec(SkDngImage* dngImage); + + SkAutoTDelete<SkDngImage> fDngImage; + + typedef SkCodec INHERITED; +}; + +#endif |