LibWeb/SVG: Move path data into Path.{h,cpp}

More things need this than just the `<path>` element, so let's avoid
having to include `SVGPathElement.h` in places that don't need it.

Minor changes at the same time:
- Wrap it in a Path class
- Specify underlying type for PathInstructionType
- Make a couple of free functions into methods
- Give PathInstruction an operator==

No functionality changes.
This commit is contained in:
Sam Atkins 2025-07-17 15:04:25 +01:00 committed by Alexander Kalenik
commit 6b53454b68
Notes: github-actions[bot] 2025-07-17 18:00:44 +00:00
9 changed files with 322 additions and 272 deletions

View file

@ -6,9 +6,7 @@
#pragma once
#include <LibGfx/Bitmap.h>
#include <LibWeb/HTML/HTMLElement.h>
#include <LibWeb/SVG/AttributeParser.h>
#include <LibWeb/SVG/Path.h>
#include <LibWeb/SVG/SVGGeometryElement.h>
namespace Web::SVG {
@ -29,9 +27,7 @@ private:
virtual void initialize(JS::Realm&) override;
Vector<PathInstruction> m_instructions;
Path m_path {};
};
[[nodiscard]] Gfx::Path path_from_path_instructions(ReadonlySpan<PathInstruction>);
}