diff --git a/Userland/Libraries/LibPDF/ColorSpace.cpp b/Userland/Libraries/LibPDF/ColorSpace.cpp index 5c10ba435c..b2ebefa6af 100644 --- a/Userland/Libraries/LibPDF/ColorSpace.cpp +++ b/Userland/Libraries/LibPDF/ColorSpace.cpp @@ -59,6 +59,9 @@ PDFErrorOr> ColorSpace::create(Document* document, Non if (color_space_name == CommonNames::ICCBased) return TRY(ICCBasedColorSpace::create(document, move(parameters))); + if (color_space_name == CommonNames::Separation) + return TRY(SeparationColorSpace::create(document, move(parameters))); + dbgln("Unknown color space: {}", color_space_name); return Error::rendering_unsupported_error("unknown color space"); } @@ -368,4 +371,22 @@ Vector ICCBasedColorSpace::default_decode() const } } +PDFErrorOr> SeparationColorSpace::create(Document*, Vector&&) +{ + auto color_space = adopt_ref(*new SeparationColorSpace()); + // FIXME: Implement. + return color_space; +} + +PDFErrorOr SeparationColorSpace::color(Vector const&) const +{ + return Error::rendering_unsupported_error("Separation color spaces not yet implemented"); +} + +Vector SeparationColorSpace::default_decode() const +{ + warnln("PDF: TODO implement SeparationColorSpace::default_decode()"); + return {}; +} + } diff --git a/Userland/Libraries/LibPDF/ColorSpace.h b/Userland/Libraries/LibPDF/ColorSpace.h index 5f87606ece..753930f26e 100644 --- a/Userland/Libraries/LibPDF/ColorSpace.h +++ b/Userland/Libraries/LibPDF/ColorSpace.h @@ -144,4 +144,19 @@ private: NonnullRefPtr m_profile; }; +class SeparationColorSpace final : public ColorSpace { +public: + static PDFErrorOr> create(Document*, Vector&& parameters); + + ~SeparationColorSpace() override = default; + + PDFErrorOr color(Vector const& arguments) const override; + int number_of_components() const override { TODO(); } + Vector default_decode() const override; + ColorSpaceFamily const& family() const override { return ColorSpaceFamily::Separation; } + +private: + SeparationColorSpace() = default; +}; + } diff --git a/Userland/Libraries/LibPDF/CommonNames.h b/Userland/Libraries/LibPDF/CommonNames.h index 7e3ae1a3fa..f0f6730f99 100644 --- a/Userland/Libraries/LibPDF/CommonNames.h +++ b/Userland/Libraries/LibPDF/CommonNames.h @@ -134,6 +134,7 @@ A(SA) \ A(SM) \ A(SMask) \ + A(Separation) \ A(StmF) \ A(StrF) \ A(Subject) \