diff --git a/Userland/Libraries/LibGfx/BMPLoader.cpp b/Userland/Libraries/LibGfx/BMPLoader.cpp index 4109adc9a31..5cf8e8ca373 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 6f21d7bd664..0880cf9112e 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 ca84bcb777a..80233d86aa0 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 1c56ae2af1a..5a8fc30e0cf 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 88c7c48e984..ca9369c5dae 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 fc78f9ca103..0492945f206 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 242015ffb92..ba27bc67cf6 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 8136319e575..539d6a3bb06 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 a8ceae3a785..f44248ee92d 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 dd0168d9249..cbc4e03b8ed 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 f1ab0de78e4..0d738aea732 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 88265df77e8..b970658bf90 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 7fa0ae01303..5d04e6a9518 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 9afc1cce670..105accc6b28 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 f8cde588595..7ed1e1d71a4 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 f973e0fdefc..05925beb1da 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 87ad124a687..f6928d6985d 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 d2de9fecae8..b6a4b7bfdf8 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();