/* * Copyright 2017 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef SkBmpBaseCodec_DEFINED #define SkBmpBaseCodec_DEFINED #include "SkBmpCodec.h" #include "SkTemplates.h" /* * Common base class for SkBmpStandardCodec and SkBmpMaskCodec. */ class SkBmpBaseCodec : public SkBmpCodec { public: ~SkBmpBaseCodec() override; /* * Whether fSrcBuffer was successfully created. * * If false, this Codec must not be used. */ bool didCreateSrcBuffer() const { return fSrcBuffer != nullptr; } protected: SkBmpBaseCodec(int width, int height, const SkEncodedInfo& info, std::unique_ptr<SkStream>, uint16_t bitsPerPixel, SkCodec::SkScanlineOrder rowOrder); uint8_t* srcBuffer() { return reinterpret_cast<uint8_t*>(fSrcBuffer.get()); } private: SkAutoFree fSrcBuffer; typedef SkBmpCodec INHERITED; }; #endif // SkBmpBaseCodec_DEFINED