mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-06-11 18:20:43 +09:00
LibWeb: Save "background-clip: text" mask as a nested display list
Before this change, "background-clip: text" was implemented by saving a Vector<Gfx::Path> of all glyphs needed to paint a mask for the background. The issue with this approach was that once glyphs were extracted into vector paths, the glyph rasterization cache could no longer be utilized. With this change, all text required for mask painting is saved in a nested display list and rasterized as a regular text.
This commit is contained in:
parent
50ab5642cc
commit
67d68eac64
Notes:
github-actions[bot]
2024-07-25 12:34:36 +00:00
Author: https://github.com/kalenikaliaksandr
Commit: 67d68eac64
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/826
17 changed files with 102 additions and 102 deletions
|
@ -207,12 +207,12 @@ bool RadialGradientStyleValue::equals(StyleValue const& other) const
|
|||
return m_properties == other_gradient.m_properties;
|
||||
}
|
||||
|
||||
void RadialGradientStyleValue::paint(PaintContext& context, DevicePixelRect const& dest_rect, CSS::ImageRendering, Vector<Gfx::Path> const& clip_paths) const
|
||||
void RadialGradientStyleValue::paint(PaintContext& context, DevicePixelRect const& dest_rect, CSS::ImageRendering, RefPtr<Painting::DisplayList> text_clip) const
|
||||
{
|
||||
VERIFY(m_resolved.has_value());
|
||||
auto center = context.rounded_device_point(m_resolved->center).to_type<int>();
|
||||
auto size = context.rounded_device_size(m_resolved->gradient_size).to_type<int>();
|
||||
context.display_list_recorder().fill_rect_with_radial_gradient(dest_rect.to_type<int>(), m_resolved->data, center, size, clip_paths);
|
||||
context.display_list_recorder().fill_rect_with_radial_gradient(dest_rect.to_type<int>(), m_resolved->data, center, size, text_clip);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue