/* * Copyright (c) 2022, Dex♪ * Copyright (c) 2022, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include namespace WebView { class WEBVIEW_API ImageCodecPlugin final : public Web::Platform::ImageCodecPlugin { public: explicit ImageCodecPlugin(NonnullRefPtr); virtual ~ImageCodecPlugin() override; virtual NonnullRefPtr> decode_image(ReadonlyBytes, Function(Web::Platform::DecodedImage&)> on_resolved, Function on_rejected) override; virtual void request_animation_frames(i64 session_id, u32 start_frame_index, u32 count) override; virtual void stop_animation_decode(i64 session_id) override; void set_client(NonnullRefPtr); private: void setup_client_callbacks(); RefPtr m_client; }; }