Chromium Code Reviews| Index: src/core/SkCodecImageGenerator.h |
| diff --git a/src/core/SkCodecImageGenerator.h b/src/core/SkCodecImageGenerator.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..c6ee1ed58f86a4147934e44ed67eaa71adce0f51 |
| --- /dev/null |
| +++ b/src/core/SkCodecImageGenerator.h |
| @@ -0,0 +1,43 @@ |
| +/* |
| + * Copyright 2015 Google Inc. |
| + * |
| + * Use of this source code is governed by a BSD-style license that can be |
| + * found in the LICENSE file. |
| + */ |
| + |
| +#include "SkCodec.h" |
| +#include "SkData.h" |
| +#include "SkImageGenerator.h" |
| + |
| +class SkCodecImageGenerator : SkImageGenerator { |
|
reed1
2016/01/04 17:52:08
not "public SkImageGenerator" ?
msarett
2016/01/04 19:17:00
"public" sgtm.
Originally I decided to make every
|
| +public: |
| + /* |
| + * If this data represents an encoded image that we know how to decode, |
| + * return an SkCodecImageGenerator. Otherwise return nullptr. |
| + * |
| + * Refs the data if an image generator can be returned. Otherwise does |
| + * not affect the data. |
| + */ |
| + static SkImageGenerator* NewFromEncodedCodec(SkData* data); |
| + |
| +protected: |
| + SkData* onRefEncodedData() override; |
| + |
| + bool onGetPixels(const SkImageInfo& info, void* pixels, size_t rowBytes, SkPMColor ctable[], |
| + int* ctableCount) override; |
| + |
| + bool onGetYUV8Planes(SkISize sizes[3], void* planes[3], size_t rowBytes[3], |
| + SkYUVColorSpace* colorSpace) override; |
| + |
| +private: |
| + /* |
| + * Takes ownership of codec |
| + * Refs the data |
| + */ |
| + SkCodecImageGenerator(SkCodec* codec, SkData* data); |
| + |
| + SkAutoTDelete<SkCodec> fCodec; |
| + SkAutoTUnref<SkData> fData; |
| + |
| + typedef SkImageGenerator INHERITED; |
| +}; |