1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 02:47:35 +00:00

LibWeb: Add support for the SVG gradient spreadMethod attribute

This commit is contained in:
MacDue 2023-08-20 15:45:02 +01:00 committed by Andreas Kling
parent 1ecb2cf28c
commit 46f42d9755
6 changed files with 52 additions and 0 deletions

View file

@ -20,6 +20,20 @@ struct SVGPaintContext {
Gfx::AffineTransform transform;
};
inline Gfx::SVGGradientPaintStyle::SpreadMethod to_gfx_spread_method(SpreadMethod spread_method)
{
switch (spread_method) {
case SpreadMethod::Pad:
return Gfx::SVGGradientPaintStyle::SpreadMethod::Pad;
case SpreadMethod::Reflect:
return Gfx::SVGGradientPaintStyle::SpreadMethod::Reflect;
case SpreadMethod::Repeat:
return Gfx::SVGGradientPaintStyle::SpreadMethod::Repeat;
default:
VERIFY_NOT_REACHED();
}
}
class SVGGradientElement : public SVGElement {
WEB_PLATFORM_OBJECT(SVGGradientElement, SVGElement);
@ -32,6 +46,8 @@ public:
GradientUnits gradient_units() const;
SpreadMethod spread_method() const;
Optional<Gfx::AffineTransform> gradient_transform() const;
protected:
@ -61,6 +77,7 @@ protected:
private:
Optional<GradientUnits> m_gradient_units = {};
Optional<SpreadMethod> m_spread_method = {};
Optional<Gfx::AffineTransform> m_gradient_transform = {};
};