1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 15:07:45 +00:00

LibWeb: Add support for 'view-box' attribute to SVGs

This patch begins the support for the 'view-box' attribute that can be
attached to <svg>'s.
The FormattingContext determines the size of the Element according to
the specified 'width' and 'height' or if they are not given by the
'viewbox' or by the bounding box of the path if nothing is specified.
When we try to paint a SVG Path that belongs to a <svg> that has the
'view-box' and a specified 'height'/'width', all the parts of the path
get scaled/moved accordingly.

There probably are many edge cases and bugs still to be found, but this
is a nice start. :^)
This commit is contained in:
Tobias Christiansen 2022-02-27 21:00:04 +01:00 committed by Andreas Kling
parent 4f1df48bd9
commit 8461791ce2
3 changed files with 131 additions and 9 deletions

View file

@ -21,6 +21,9 @@ public:
virtual void paint(PaintContext& context, PaintPhase phase) override;
float viewbox_scaling() const;
Gfx::FloatPoint viewbox_origin() const;
private:
virtual bool is_svg_geometry_box() const final { return true; }
};