summaryrefslogtreecommitdiff
path: root/Libraries/LibDraw/PNGLoader.h
blob: f148e6ea2542bbba4db572f895df0aa8ed3c0708 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#pragma once

#include <LibDraw/GraphicsBitmap.h>
#include <LibDraw/ImageDecoder.h>

RefPtr<GraphicsBitmap> load_png(const StringView& path);
RefPtr<GraphicsBitmap> load_png_from_memory(const u8*, size_t);

struct PNGLoadingContext;

class PNGImageDecoderPlugin final : public ImageDecoderPlugin {
public:
    virtual ~PNGImageDecoderPlugin() override;
    PNGImageDecoderPlugin(const u8*, size_t);

    virtual Size size() override;
    virtual RefPtr<GraphicsBitmap> bitmap() override;
    virtual void set_volatile() override;
    [[nodiscard]] virtual bool set_nonvolatile() override;

private:
    OwnPtr<PNGLoadingContext> m_context;
};