diff --git a/Userland/Libraries/LibGfx/BMPLoader.cpp b/Userland/Libraries/LibGfx/BMPLoader.cpp index 4109adc9a3..5cf8e8ca37 100644 --- a/Userland/Libraries/LibGfx/BMPLoader.cpp +++ b/Userland/Libraries/LibGfx/BMPLoader.cpp @@ -1492,4 +1492,9 @@ ErrorOr BMPImageDecoderPlugin::frame(size_t index) return ImageFrameDescriptor { m_context->bitmap, 0 }; } +ErrorOr> BMPImageDecoderPlugin::icc_data() +{ + return OptionalNone {}; +} + } diff --git a/Userland/Libraries/LibGfx/BMPLoader.h b/Userland/Libraries/LibGfx/BMPLoader.h index 6f21d7bd66..0880cf9112 100644 --- a/Userland/Libraries/LibGfx/BMPLoader.h +++ b/Userland/Libraries/LibGfx/BMPLoader.h @@ -36,6 +36,7 @@ public: virtual size_t loop_count() override; virtual size_t frame_count() override; virtual ErrorOr frame(size_t index) override; + virtual ErrorOr> icc_data() override; private: BMPImageDecoderPlugin(u8 const*, size_t, IncludedInICO included_in_ico = IncludedInICO::No); diff --git a/Userland/Libraries/LibGfx/DDSLoader.cpp b/Userland/Libraries/LibGfx/DDSLoader.cpp index ca84bcb777..80233d86aa 100644 --- a/Userland/Libraries/LibGfx/DDSLoader.cpp +++ b/Userland/Libraries/LibGfx/DDSLoader.cpp @@ -1024,4 +1024,9 @@ ErrorOr DDSImageDecoderPlugin::frame(size_t index) return ImageFrameDescriptor { m_context->bitmap, 0 }; } +ErrorOr> DDSImageDecoderPlugin::icc_data() +{ + return OptionalNone {}; +} + } diff --git a/Userland/Libraries/LibGfx/DDSLoader.h b/Userland/Libraries/LibGfx/DDSLoader.h index 1c56ae2af1..5a8fc30e0c 100644 --- a/Userland/Libraries/LibGfx/DDSLoader.h +++ b/Userland/Libraries/LibGfx/DDSLoader.h @@ -248,6 +248,7 @@ public: virtual size_t loop_count() override; virtual size_t frame_count() override; virtual ErrorOr frame(size_t index) override; + virtual ErrorOr> icc_data() override; private: DDSImageDecoderPlugin(u8 const*, size_t); diff --git a/Userland/Libraries/LibGfx/GIFLoader.cpp b/Userland/Libraries/LibGfx/GIFLoader.cpp index 88c7c48e98..ca9369c5da 100644 --- a/Userland/Libraries/LibGfx/GIFLoader.cpp +++ b/Userland/Libraries/LibGfx/GIFLoader.cpp @@ -667,4 +667,9 @@ ErrorOr GIFImageDecoderPlugin::frame(size_t index) return frame; } +ErrorOr> GIFImageDecoderPlugin::icc_data() +{ + return OptionalNone {}; +} + } diff --git a/Userland/Libraries/LibGfx/GIFLoader.h b/Userland/Libraries/LibGfx/GIFLoader.h index fc78f9ca10..0492945f20 100644 --- a/Userland/Libraries/LibGfx/GIFLoader.h +++ b/Userland/Libraries/LibGfx/GIFLoader.h @@ -28,6 +28,7 @@ public: virtual size_t loop_count() override; virtual size_t frame_count() override; virtual ErrorOr frame(size_t index) override; + virtual ErrorOr> icc_data() override; private: GIFImageDecoderPlugin(u8 const*, size_t); diff --git a/Userland/Libraries/LibGfx/ICOLoader.cpp b/Userland/Libraries/LibGfx/ICOLoader.cpp index 242015ffb9..ba27bc67cf 100644 --- a/Userland/Libraries/LibGfx/ICOLoader.cpp +++ b/Userland/Libraries/LibGfx/ICOLoader.cpp @@ -278,4 +278,9 @@ ErrorOr ICOImageDecoderPlugin::frame(size_t index) return ImageFrameDescriptor { m_context->images[m_context->largest_index].bitmap, 0 }; } +ErrorOr> ICOImageDecoderPlugin::icc_data() +{ + return OptionalNone {}; +} + } diff --git a/Userland/Libraries/LibGfx/ICOLoader.h b/Userland/Libraries/LibGfx/ICOLoader.h index 8136319e57..539d6a3bb0 100644 --- a/Userland/Libraries/LibGfx/ICOLoader.h +++ b/Userland/Libraries/LibGfx/ICOLoader.h @@ -27,6 +27,7 @@ public: virtual size_t loop_count() override; virtual size_t frame_count() override; virtual ErrorOr frame(size_t index) override; + virtual ErrorOr> icc_data() override; private: ICOImageDecoderPlugin(u8 const*, size_t); diff --git a/Userland/Libraries/LibGfx/ImageDecoder.h b/Userland/Libraries/LibGfx/ImageDecoder.h index a8ceae3a78..f44248ee92 100644 --- a/Userland/Libraries/LibGfx/ImageDecoder.h +++ b/Userland/Libraries/LibGfx/ImageDecoder.h @@ -40,6 +40,7 @@ public: virtual size_t loop_count() = 0; virtual size_t frame_count() = 0; virtual ErrorOr frame(size_t index) = 0; + virtual ErrorOr> icc_data() = 0; protected: ImageDecoderPlugin() = default; @@ -59,6 +60,7 @@ public: size_t loop_count() const { return m_plugin->loop_count(); } size_t frame_count() const { return m_plugin->frame_count(); } ErrorOr frame(size_t index) const { return m_plugin->frame(index); } + ErrorOr> icc_data() const { return m_plugin->icc_data(); } private: explicit ImageDecoder(NonnullOwnPtr); diff --git a/Userland/Libraries/LibGfx/JPGLoader.cpp b/Userland/Libraries/LibGfx/JPGLoader.cpp index dd0168d924..cbc4e03b8e 100644 --- a/Userland/Libraries/LibGfx/JPGLoader.cpp +++ b/Userland/Libraries/LibGfx/JPGLoader.cpp @@ -1178,4 +1178,9 @@ ErrorOr JPGImageDecoderPlugin::frame(size_t index) return ImageFrameDescriptor { m_context->bitmap, 0 }; } +ErrorOr> JPGImageDecoderPlugin::icc_data() +{ + return OptionalNone {}; +} + } diff --git a/Userland/Libraries/LibGfx/JPGLoader.h b/Userland/Libraries/LibGfx/JPGLoader.h index f1ab0de78e..0d738aea73 100644 --- a/Userland/Libraries/LibGfx/JPGLoader.h +++ b/Userland/Libraries/LibGfx/JPGLoader.h @@ -26,10 +26,12 @@ public: virtual size_t loop_count() override; virtual size_t frame_count() override; virtual ErrorOr frame(size_t index) override; + virtual ErrorOr> icc_data() override; private: JPGImageDecoderPlugin(u8 const*, size_t); OwnPtr m_context; }; + } diff --git a/Userland/Libraries/LibGfx/PNGLoader.cpp b/Userland/Libraries/LibGfx/PNGLoader.cpp index 88265df77e..b970658bf9 100644 --- a/Userland/Libraries/LibGfx/PNGLoader.cpp +++ b/Userland/Libraries/LibGfx/PNGLoader.cpp @@ -963,4 +963,9 @@ ErrorOr PNGImageDecoderPlugin::frame(size_t index) return ImageFrameDescriptor { m_context->bitmap, 0 }; } +ErrorOr> PNGImageDecoderPlugin::icc_data() +{ + return OptionalNone {}; +} + } diff --git a/Userland/Libraries/LibGfx/PNGLoader.h b/Userland/Libraries/LibGfx/PNGLoader.h index 7fa0ae0130..5d04e6a951 100644 --- a/Userland/Libraries/LibGfx/PNGLoader.h +++ b/Userland/Libraries/LibGfx/PNGLoader.h @@ -27,6 +27,7 @@ public: virtual size_t loop_count() override; virtual size_t frame_count() override; virtual ErrorOr frame(size_t index) override; + virtual ErrorOr> icc_data() override; private: PNGImageDecoderPlugin(u8 const*, size_t); diff --git a/Userland/Libraries/LibGfx/PortableImageMapLoader.h b/Userland/Libraries/LibGfx/PortableImageMapLoader.h index 9afc1cce67..105accc6b2 100644 --- a/Userland/Libraries/LibGfx/PortableImageMapLoader.h +++ b/Userland/Libraries/LibGfx/PortableImageMapLoader.h @@ -65,6 +65,7 @@ public: virtual size_t loop_count() override; virtual size_t frame_count() override; virtual ErrorOr frame(size_t index) override; + virtual ErrorOr> icc_data() override; private: OwnPtr m_context; @@ -183,4 +184,11 @@ ErrorOr PortableImageDecoderPlugin::frame(size_t VERIFY(m_context->bitmap); return ImageFrameDescriptor { m_context->bitmap, 0 }; } + +template +ErrorOr> PortableImageDecoderPlugin::icc_data() +{ + return OptionalNone {}; +} + } diff --git a/Userland/Libraries/LibGfx/QOILoader.cpp b/Userland/Libraries/LibGfx/QOILoader.cpp index f8cde58859..7ed1e1d71a 100644 --- a/Userland/Libraries/LibGfx/QOILoader.cpp +++ b/Userland/Libraries/LibGfx/QOILoader.cpp @@ -262,4 +262,9 @@ ErrorOr QOIImageDecoderPlugin::decode_image_and_update_context(Core::Strea return {}; } +ErrorOr> QOIImageDecoderPlugin::icc_data() +{ + return OptionalNone {}; +} + } diff --git a/Userland/Libraries/LibGfx/QOILoader.h b/Userland/Libraries/LibGfx/QOILoader.h index f973e0fdef..05925beb1d 100644 --- a/Userland/Libraries/LibGfx/QOILoader.h +++ b/Userland/Libraries/LibGfx/QOILoader.h @@ -53,6 +53,7 @@ public: virtual size_t loop_count() override { return 0; } virtual size_t frame_count() override { return 1; } virtual ErrorOr frame(size_t index) override; + virtual ErrorOr> icc_data() override; private: ErrorOr decode_header_and_update_context(Core::Stream::Stream&); diff --git a/Userland/Libraries/LibGfx/TGALoader.cpp b/Userland/Libraries/LibGfx/TGALoader.cpp index 87ad124a68..f6928d6985 100644 --- a/Userland/Libraries/LibGfx/TGALoader.cpp +++ b/Userland/Libraries/LibGfx/TGALoader.cpp @@ -359,4 +359,10 @@ ErrorOr TGAImageDecoderPlugin::frame(size_t index) m_context->bitmap = bitmap; return ImageFrameDescriptor { m_context->bitmap, 0 }; } + +ErrorOr> TGAImageDecoderPlugin::icc_data() +{ + return OptionalNone {}; +} + } diff --git a/Userland/Libraries/LibGfx/TGALoader.h b/Userland/Libraries/LibGfx/TGALoader.h index d2de9fecae..b6a4b7bfdf 100644 --- a/Userland/Libraries/LibGfx/TGALoader.h +++ b/Userland/Libraries/LibGfx/TGALoader.h @@ -28,6 +28,7 @@ public: virtual size_t loop_count() override; virtual size_t frame_count() override; virtual ErrorOr frame(size_t index) override; + virtual ErrorOr> icc_data() override; private: bool decode_tga_header();