diff options
Diffstat (limited to 'gfx/skia/skia/src/codec/SkRawCodec.h')
-rw-r--r-- | gfx/skia/skia/src/codec/SkRawCodec.h | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/gfx/skia/skia/src/codec/SkRawCodec.h b/gfx/skia/skia/src/codec/SkRawCodec.h new file mode 100644 index 000000000..3ca7b9c17 --- /dev/null +++ b/gfx/skia/skia/src/codec/SkRawCodec.h @@ -0,0 +1,61 @@ +/* + * 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 "SkColorSpace.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 kDNG_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 |