| Index: src/codec/SkBmpStandardCodec.h
|
| diff --git a/src/codec/SkBmpStandardCodec.h b/src/codec/SkBmpStandardCodec.h
|
| index 45450e65918b95c5d5222ec36cb3ddba9f28edfa..1cbefccb21f57456d6e0ca192c556a05b68b1f0e 100644
|
| --- a/src/codec/SkBmpStandardCodec.h
|
| +++ b/src/codec/SkBmpStandardCodec.h
|
| @@ -36,8 +36,9 @@ public:
|
| * @param rowOrder indicates whether rows are ordered top-down or bottom-up
|
| */
|
| SkBmpStandardCodec(const SkImageInfo& srcInfo, SkStream* stream,
|
| - uint16_t bitsPerPixel, uint32_t numColors, uint32_t bytesPerColor,
|
| - uint32_t offset, SkBmpCodec::RowOrder rowOrder, bool isIco);
|
| + SkBmpCodec::BmpInputFormat inputFormat, uint16_t bitsPerPixel,
|
| + uint32_t numColors, uint32_t bytesPerColor, uint32_t offset,
|
| + SkBmpCodec::RowOrder rowOrder, bool isIco);
|
|
|
| protected:
|
|
|
| @@ -68,5 +69,30 @@ private:
|
| SkAutoTDeleteArray<uint8_t> fSrcBuffer;
|
| const bool fInIco;
|
|
|
| + friend class SkBmpStandardScanlineDecoder;
|
| +
|
| typedef SkBmpCodec INHERITED;
|
| };
|
| +
|
| +/*
|
| + * Scanline decoder for standard bmps
|
| + */
|
| +class SkBmpStandardScanlineDecoder : public SkScanlineDecoder {
|
| +public:
|
| + SkBmpStandardScanlineDecoder(SkBmpStandardCodec* codec);
|
| +
|
| + SkCodec::Result onStart(const SkImageInfo& dstInfo, const SkCodec::Options& options,
|
| + SkPMColor inputColorPtr[], int* inputColorCount) override;
|
| +
|
| + SkCodec::Result onGetScanlines(void* dst, int count, size_t rowBytes) override;
|
| +
|
| + // TODO(msarett): Override default skipping with something more clever.
|
| + // TODO(msarett): Consider other optimizations for this codec.
|
| +
|
| +private:
|
| + SkAutoTDelete<SkBmpStandardCodec> fCodec;
|
| + SkImageInfo fDstInfo;
|
| + SkCodec::Options fOpts;
|
| +
|
| + typedef SkScanlineDecoder INHERITED;
|
| +};
|
|
|