1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-14 05:54:58 +00:00

LibGfx: Only attempt to paint strokes with a width > 0

This commit is contained in:
MacDue 2023-07-16 16:22:56 +01:00 committed by Andreas Kling
parent d4d7550588
commit a9b4e876d0
2 changed files with 6 additions and 0 deletions

View file

@ -194,12 +194,16 @@ void AntiAliasingPainter::draw_line(FloatPoint actual_from, FloatPoint actual_to
void AntiAliasingPainter::stroke_path(Path const& path, Color color, float thickness)
{
if (thickness <= 0)
return;
// FIXME: Cache this? Probably at a higher level such as in LibWeb?
fill_path(path.stroke_to_fill(thickness), color);
}
void AntiAliasingPainter::stroke_path(Path const& path, Gfx::PaintStyle const& paint_style, float thickness, float opacity)
{
if (thickness <= 0)
return;
// FIXME: Cache this? Probably at a higher level such as in LibWeb?
fill_path(path.stroke_to_fill(thickness), paint_style, opacity);
}

View file

@ -416,6 +416,8 @@ Path Path::stroke_to_fill(float thickness) const
// Note: This convolves a polygon with the path using the algorithm described
// in https://keithp.com/~keithp/talks/cairo2003.pdf (3.1 Stroking Splines via Convolution)
VERIFY(thickness > 0);
auto& lines = split_lines();
if (lines.is_empty())
return Path {};