mirror of
https://github.com/zebrajr/ladybird.git
synced 2025-12-06 00:19:53 +01:00
LibWeb: Pass device_pixels_per_css_pixel into DisplayList constructor
Having a setter for `device_pixels_per_css_pixel` was confusing because display lists are immutable, so it doesn't make sense to override this value after the display list has been created.
This commit is contained in:
parent
8e3a42c54e
commit
789016841e
|
|
@ -82,7 +82,7 @@ Optional<Gfx::ImageCursor> CursorStyleValue::make_image_cursor(Layout::NodeWithS
|
|||
painter->clear_rect(bitmap.rect().to_type<float>(), Color::Transparent);
|
||||
|
||||
// Paint the cursor into a bitmap.
|
||||
auto display_list = Painting::DisplayList::create();
|
||||
auto display_list = Painting::DisplayList::create(document.page().client().device_pixels_per_css_pixel());
|
||||
Painting::DisplayListRecorder display_list_recorder(display_list);
|
||||
PaintContext paint_context { display_list_recorder, document.page().palette(), document.page().client().device_pixels_per_css_pixel() };
|
||||
|
||||
|
|
|
|||
|
|
@ -6416,7 +6416,7 @@ RefPtr<Painting::DisplayList> Document::record_display_list(HTML::PaintConfig co
|
|||
return m_cached_display_list;
|
||||
}
|
||||
|
||||
auto display_list = Painting::DisplayList::create();
|
||||
auto display_list = Painting::DisplayList::create(page().client().device_pixels_per_css_pixel());
|
||||
Painting::DisplayListRecorder display_list_recorder(display_list);
|
||||
|
||||
// https://drafts.csswg.org/css-color-adjust-1/#color-scheme-effect
|
||||
|
|
@ -6469,8 +6469,6 @@ RefPtr<Painting::DisplayList> Document::record_display_list(HTML::PaintConfig co
|
|||
|
||||
viewport_paintable.paint_all_phases(context);
|
||||
|
||||
display_list->set_device_pixels_per_css_pixel(page().client().device_pixels_per_css_pixel());
|
||||
|
||||
m_cached_display_list = display_list;
|
||||
m_cached_display_list_paint_config = config;
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ namespace Web::Painting {
|
|||
|
||||
static RefPtr<DisplayList> compute_text_clip_paths(PaintContext& context, Paintable const& paintable, CSSPixelPoint containing_block_location)
|
||||
{
|
||||
auto text_clip_paths = DisplayList::create();
|
||||
auto text_clip_paths = DisplayList::create(context.device_pixels_per_css_pixel());
|
||||
DisplayListRecorder display_list_recorder(*text_clip_paths);
|
||||
// Remove containing block offset, so executing the display list will produce mask at (0, 0)
|
||||
display_list_recorder.translate(-context.floored_device_point(containing_block_location).to_type<int>());
|
||||
|
|
|
|||
|
|
@ -84,9 +84,9 @@ private:
|
|||
|
||||
class DisplayList : public AtomicRefCounted<DisplayList> {
|
||||
public:
|
||||
static NonnullRefPtr<DisplayList> create()
|
||||
static NonnullRefPtr<DisplayList> create(double device_pixels_per_css_pixel)
|
||||
{
|
||||
return adopt_ref(*new DisplayList());
|
||||
return adopt_ref(*new DisplayList(device_pixels_per_css_pixel));
|
||||
}
|
||||
|
||||
void append(Command&& command, Optional<i32> scroll_frame_id, RefPtr<ClipFrame const>);
|
||||
|
|
@ -98,14 +98,15 @@ public:
|
|||
};
|
||||
|
||||
AK::SegmentedVector<CommandListItem, 512> const& commands() const { return m_commands; }
|
||||
|
||||
void set_device_pixels_per_css_pixel(double device_pixels_per_css_pixel) { m_device_pixels_per_css_pixel = device_pixels_per_css_pixel; }
|
||||
double device_pixels_per_css_pixel() const { return m_device_pixels_per_css_pixel; }
|
||||
|
||||
String dump() const;
|
||||
|
||||
private:
|
||||
DisplayList() = default;
|
||||
DisplayList(double device_pixels_per_css_pixel)
|
||||
: m_device_pixels_per_css_pixel(device_pixels_per_css_pixel)
|
||||
{
|
||||
}
|
||||
|
||||
AK::SegmentedVector<CommandListItem, 512> m_commands;
|
||||
double m_device_pixels_per_css_pixel;
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ RefPtr<Gfx::ImmutableBitmap> SVGMaskable::calculate_mask_of_svg(PaintContext& co
|
|||
if (mask_bitmap_or_error.is_error())
|
||||
return {};
|
||||
mask_bitmap = mask_bitmap_or_error.release_value();
|
||||
auto display_list = DisplayList::create();
|
||||
auto display_list = DisplayList::create(context.device_pixels_per_css_pixel());
|
||||
DisplayListRecorder display_list_recorder(*display_list);
|
||||
display_list_recorder.translate(-mask_rect.location().to_type<int>());
|
||||
auto paint_context = context.clone(display_list_recorder);
|
||||
|
|
|
|||
|
|
@ -353,7 +353,7 @@ void StackingContext::paint(PaintContext& context) const
|
|||
}
|
||||
|
||||
if (auto mask_image = computed_values.mask_image()) {
|
||||
auto mask_display_list = DisplayList::create();
|
||||
auto mask_display_list = DisplayList::create(context.device_pixels_per_css_pixel());
|
||||
DisplayListRecorder display_list_recorder(*mask_display_list);
|
||||
auto mask_painting_context = context.clone(display_list_recorder);
|
||||
auto mask_rect_in_device_pixels = context.enclosing_device_rect(paintable_box().absolute_padding_box_rect());
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user