blob: 98e3b120f055ddbf63edfd6c26c44408b7404264 [file] [log] [blame]
/*
* Copyright 2023 Google LLC
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef SkPngEncoderImpl_DEFINED
#define SkPngEncoderImpl_DEFINED
#include <cstdint>
#include "src/encode/SkPngEncoderBase.h"
#include <memory>
class SkPixmap;
class SkPngEncoderMgr;
template <typename T> class SkSpan;
class SkPngEncoderImpl final : public SkPngEncoderBase {
public:
// public so it can be called from SkPngEncoder namespace. It should only be made
// via SkPngEncoder::Make
SkPngEncoderImpl(TargetInfo targetInfo, std::unique_ptr<SkPngEncoderMgr>, const SkPixmap& src);
~SkPngEncoderImpl() override;
protected:
bool onEncodeRow(SkSpan<const uint8_t> row) override;
bool onFinishEncoding() override;
std::unique_ptr<SkPngEncoderMgr> fEncoderMgr;
};
#endif