LibWeb: Port painting to use the new Skia-backed Gfx::Path

SVG and and CSS border rendering now sits on top of SkPath instead of
the old Gfx::DeprecatedPath.

Due to an imperceptible (255, 255, 255) vs (255, 254, 255) color diff
in one ref test, I changed that test to not depend on border rendering
for a positive result, since that was incidental.
This commit is contained in:
Andreas Kling 2024-08-09 14:00:10 +02:00 committed by Andreas Kling
commit 137038b185
Notes: github-actions[bot] 2024-08-20 07:38:12 +00:00
37 changed files with 139 additions and 143 deletions

View file

@ -4,6 +4,7 @@
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <LibGfx/Path.h>
#include <LibWeb/Bindings/Intrinsics.h>
#include <LibWeb/Bindings/SVGCircleElementPrototype.h>
#include <LibWeb/CSS/Parser/Parser.h>
@ -46,7 +47,7 @@ void SVGCircleElement::apply_presentational_hints(CSS::StyleProperties& style) c
style.set_property(CSS::PropertyID::R, r_value.release_nonnull());
}
Gfx::DeprecatedPath SVGCircleElement::get_path(CSSPixelSize viewport_size)
Gfx::Path SVGCircleElement::get_path(CSSPixelSize viewport_size)
{
auto node = layout_node();
auto cx = float(node->computed_values().cx().to_px(*node, viewport_size.width()));
@ -59,7 +60,7 @@ Gfx::DeprecatedPath SVGCircleElement::get_path(CSSPixelSize viewport_size)
if (r == 0)
return {};
Gfx::DeprecatedPath path;
Gfx::Path path;
bool large_arc = false;
bool sweep = true;