diff options
author | Lucas CHOLLET <lucas.chollet@free.fr> | 2023-03-21 14:58:06 -0400 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2023-03-21 22:39:25 +0100 |
commit | 496b7ffb2b58043a80d90b8b8f44cab1eaa874e8 (patch) | |
tree | 1fca47aa8123c9d3e110d45c8af637f95241dcd5 /Userland/Libraries/LibGfx/ImageFormats/ICOLoader.h | |
parent | 752f06f228119a70c59e844dcd2b9560e757b0ff (diff) | |
download | serenity-496b7ffb2b58043a80d90b8b8f44cab1eaa874e8.zip |
LibGfx: Move all image loaders and writers to a subdirectory
Diffstat (limited to 'Userland/Libraries/LibGfx/ImageFormats/ICOLoader.h')
-rw-r--r-- | Userland/Libraries/LibGfx/ImageFormats/ICOLoader.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/Userland/Libraries/LibGfx/ImageFormats/ICOLoader.h b/Userland/Libraries/LibGfx/ImageFormats/ICOLoader.h new file mode 100644 index 0000000000..bef1c4cf87 --- /dev/null +++ b/Userland/Libraries/LibGfx/ImageFormats/ICOLoader.h @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2020, Paul Roukema <roukemap@gmail.com> + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#pragma once + +#include <LibGfx/ImageFormats/ImageDecoder.h> + +namespace Gfx { + +struct ICOLoadingContext; + +class ICOImageDecoderPlugin final : public ImageDecoderPlugin { +public: + static bool sniff(ReadonlyBytes); + static ErrorOr<NonnullOwnPtr<ImageDecoderPlugin>> create(ReadonlyBytes); + + virtual ~ICOImageDecoderPlugin() override; + + virtual IntSize size() override; + virtual void set_volatile() override; + [[nodiscard]] virtual bool set_nonvolatile(bool& was_purged) override; + virtual bool initialize() override; + virtual bool is_animated() override; + virtual size_t loop_count() override; + virtual size_t frame_count() override; + virtual ErrorOr<ImageFrameDescriptor> frame(size_t index) override; + virtual ErrorOr<Optional<ReadonlyBytes>> icc_data() override; + +private: + ICOImageDecoderPlugin(u8 const*, size_t); + static ErrorOr<void> load_ico_bitmap(ICOLoadingContext& context, Optional<size_t> index); + + OwnPtr<ICOLoadingContext> m_context; +}; + +} |