61 lines
1.7 KiB
C++
61 lines
1.7 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/webpdecoder.h
|
|
// Purpose: wxWebPDecoder, WebP Animation decoder
|
|
// Author: Maarten Bent
|
|
// Created: 2025-02-27
|
|
// Copyright: (c) 2025 Maarten Bent
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_WEBPDECODER_H
|
|
#define _WX_WEBPDECODER_H
|
|
|
|
#include "wx/defs.h"
|
|
|
|
#if wxUSE_STREAMS && wxUSE_LIBWEBP
|
|
|
|
#include "wx/stream.h"
|
|
#include "wx/image.h"
|
|
#include "wx/animdecod.h"
|
|
#include "wx/imagwebp.h"
|
|
|
|
|
|
class WXDLLIMPEXP_CORE wxWebPDecoder : public wxAnimationDecoder
|
|
{
|
|
public:
|
|
wxWebPDecoder();
|
|
~wxWebPDecoder();
|
|
|
|
virtual wxSize GetFrameSize(unsigned int frame) const override;
|
|
virtual wxPoint GetFramePosition(unsigned int frame) const override;
|
|
virtual wxAnimationDisposal GetDisposalMethod(unsigned int frame) const override;
|
|
virtual long GetDelay(unsigned int frame) const override;
|
|
virtual wxColour GetTransparentColour(unsigned int frame) const override;
|
|
|
|
virtual bool Load(wxInputStream& stream) override;
|
|
virtual bool ConvertToImage(unsigned int frame, wxImage* image) const override;
|
|
|
|
virtual wxAnimationDecoder* Clone() const override
|
|
{
|
|
return new wxWebPDecoder;
|
|
}
|
|
virtual wxAnimationType GetType() const override
|
|
{
|
|
return wxANIMATION_TYPE_WEBP;
|
|
}
|
|
|
|
protected:
|
|
virtual bool DoCanRead(wxInputStream& stream) const override;
|
|
|
|
private:
|
|
std::vector<wxWebPAnimationFrame> m_frames;
|
|
|
|
void InitWebPHandler() const;
|
|
|
|
wxDECLARE_NO_COPY_CLASS(wxWebPDecoder);
|
|
};
|
|
|
|
#endif // wxUSE_STREAMS && wxUSE_LIBWEBP
|
|
|
|
#endif // _WX_WEBPDECODER_H
|