LibWeb: Use CornerRadii struct in FillRectWithRoundedCorners command

This makes it consistent with other commands.
This commit is contained in:
Aliaksandr Kalenik 2024-07-01 15:54:04 +02:00 committed by Alexander Kalenik
parent eba33b964e
commit 877adcc021
Notes: sideshowbarker 2024-07-18 02:13:10 +09:00
5 changed files with 16 additions and 23 deletions

View File

@ -154,10 +154,7 @@ struct PaintTextShadow {
struct FillRectWithRoundedCorners {
Gfx::IntRect rect;
Color color;
Gfx::AntiAliasingPainter::CornerRadius top_left_radius;
Gfx::AntiAliasingPainter::CornerRadius top_right_radius;
Gfx::AntiAliasingPainter::CornerRadius bottom_left_radius;
Gfx::AntiAliasingPainter::CornerRadius bottom_right_radius;
CornerRadii corner_radii;
Vector<Gfx::Path> clip_paths;
[[nodiscard]] Gfx::IntRect bounding_rect() const { return rect; }

View File

@ -305,10 +305,10 @@ CommandResult DisplayListPlayerCPU::fill_rect_with_rounded_corners(FillRectWithR
aa_painter.fill_rect_with_rounded_corners(
command.rect,
command.color,
command.top_left_radius,
command.top_right_radius,
command.bottom_right_radius,
command.bottom_left_radius);
command.corner_radii.top_left,
command.corner_radii.top_right,
command.corner_radii.bottom_right,
command.corner_radii.bottom_left);
};
if (command.clip_paths.is_empty()) {
paint_op(painter());

View File

@ -212,10 +212,10 @@ CommandResult DisplayListPlayerGPU::fill_rect_with_rounded_corners(FillRectWithR
// FIXME: Support clip paths
painter().fill_rect_with_rounded_corners(
command.rect, command.color,
{ static_cast<float>(command.top_left_radius.horizontal_radius), static_cast<float>(command.top_left_radius.vertical_radius) },
{ static_cast<float>(command.top_right_radius.horizontal_radius), static_cast<float>(command.top_right_radius.vertical_radius) },
{ static_cast<float>(command.bottom_left_radius.horizontal_radius), static_cast<float>(command.bottom_left_radius.vertical_radius) },
{ static_cast<float>(command.bottom_right_radius.horizontal_radius), static_cast<float>(command.bottom_right_radius.vertical_radius) });
{ static_cast<float>(command.corner_radii.top_left.horizontal_radius), static_cast<float>(command.corner_radii.top_left.vertical_radius) },
{ static_cast<float>(command.corner_radii.top_right.horizontal_radius), static_cast<float>(command.corner_radii.top_right.vertical_radius) },
{ static_cast<float>(command.corner_radii.bottom_left.horizontal_radius), static_cast<float>(command.corner_radii.bottom_left.vertical_radius) },
{ static_cast<float>(command.corner_radii.bottom_right.horizontal_radius), static_cast<float>(command.corner_radii.bottom_right.vertical_radius) });
return CommandResult::Continue;
}

View File

@ -626,13 +626,7 @@ CommandResult DisplayListPlayerSkia::fill_rect_with_rounded_corners(FillRectWith
SkPaint paint;
paint.setColor(to_skia_color(command.color));
SkRRect rounded_rect;
SkVector radii[4];
radii[0].set(command.top_left_radius.horizontal_radius, command.top_left_radius.vertical_radius);
radii[1].set(command.top_right_radius.horizontal_radius, command.top_right_radius.vertical_radius);
radii[2].set(command.bottom_right_radius.horizontal_radius, command.bottom_right_radius.vertical_radius);
radii[3].set(command.bottom_left_radius.horizontal_radius, command.bottom_left_radius.vertical_radius);
rounded_rect.setRectRadii(to_skia_rect(rect), radii);
auto rounded_rect = to_skia_rrect(rect, command.corner_radii);
canvas.drawRRect(rounded_rect, paint);
return CommandResult::Continue;

View File

@ -367,10 +367,12 @@ void DisplayListRecorder::fill_rect_with_rounded_corners(Gfx::IntRect const& rec
append(FillRectWithRoundedCorners {
.rect = state().translation.map(rect),
.color = color,
.top_left_radius = top_left_radius,
.top_right_radius = top_right_radius,
.bottom_left_radius = bottom_left_radius,
.bottom_right_radius = bottom_right_radius,
.corner_radii = {
.top_left = top_left_radius,
.top_right = top_right_radius,
.bottom_right = bottom_right_radius,
.bottom_left = bottom_left_radius,
},
.clip_paths = clip_paths,
});
}