mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-10-04 00:59:34 +03:00
LibWeb: Use CornerRadii struct in FillRectWithRoundedCorners command
This makes it consistent with other commands.
This commit is contained in:
parent
eba33b964e
commit
877adcc021
Notes:
sideshowbarker
2024-07-18 02:13:10 +09:00
Author: https://github.com/kalenikaliaksandr Commit: https://github.com/LadybirdBrowser/ladybird/commit/877adcc021 Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/329
@ -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; }
|
||||
|
@ -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());
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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,
|
||||
});
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user