mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-10 13:00:29 +03:00
cd7262ee56
This replaces the previous Web::ImageDecoding::Decoder interface. While we're doing this, also move the SerenityOS implementation of this interface from LibWebView to WebContent. That means we no longer have to link with LibImageDecoderClient in applications that use a web view.
38 lines
695 B
C++
38 lines
695 B
C++
/*
|
|
* Copyright (c) 2020-2022, Andreas Kling <kling@serenityos.org>
|
|
* Copyright (c) 2022, Dex♪ <dexes.ttp@gmail.com>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <AK/RefPtr.h>
|
|
#include <AK/Vector.h>
|
|
#include <LibGfx/Forward.h>
|
|
|
|
namespace Web::Platform {
|
|
|
|
struct Frame {
|
|
RefPtr<Gfx::Bitmap> bitmap;
|
|
size_t duration { 0 };
|
|
};
|
|
|
|
struct DecodedImage {
|
|
bool is_animated { false };
|
|
u32 loop_count { 0 };
|
|
Vector<Frame> frames;
|
|
};
|
|
|
|
class ImageCodecPlugin {
|
|
public:
|
|
static ImageCodecPlugin& the();
|
|
static void install(ImageCodecPlugin&);
|
|
|
|
virtual ~ImageCodecPlugin();
|
|
|
|
virtual Optional<DecodedImage> decode_image(ReadonlyBytes) = 0;
|
|
};
|
|
|
|
}
|