mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 04:27:45 +00:00
LibWeb: Move BorderRadiusCornerClipper allocation into CPU executor
BorderRadiusCornerClipper usage to clip border radius is specific to CPU painter so it should not be stored in painting commands. Also with this change bitmaps for corner sampling are allocated during painting commands replaying instead of commands recording.
This commit is contained in:
parent
89fd8dfaad
commit
e8960cf754
12 changed files with 85 additions and 63 deletions
|
@ -43,8 +43,8 @@ public:
|
|||
CommandResult paint_radial_gradient(Gfx::IntRect const& rect, Web::Painting::RadialGradientData const& radial_gradient_data, Gfx::IntPoint const& center, Gfx::IntSize const& size) override;
|
||||
CommandResult paint_conic_gradient(Gfx::IntRect const& rect, Web::Painting::ConicGradientData const& conic_gradient_data, Gfx::IntPoint const& position) override;
|
||||
CommandResult draw_triangle_wave(Gfx::IntPoint const& p1, Gfx::IntPoint const& p2, Color const&, int amplitude, int thickness) override;
|
||||
CommandResult sample_under_corners(BorderRadiusCornerClipper&) override;
|
||||
CommandResult blit_corner_clipping(BorderRadiusCornerClipper&) override;
|
||||
CommandResult sample_under_corners(u32 id, CornerRadii const&, Gfx::IntRect const&, CornerClip) override;
|
||||
CommandResult blit_corner_clipping(u32 id) override;
|
||||
CommandResult paint_borders(DevicePixelRect const& border_rect, CornerRadii const& corner_radii, BordersDataDevicePixels const& borders_data) override;
|
||||
|
||||
bool would_be_fully_clipped_by_painter(Gfx::IntRect) const override;
|
||||
|
@ -59,6 +59,7 @@ public:
|
|||
|
||||
private:
|
||||
Gfx::Bitmap& m_target_bitmap;
|
||||
Vector<RefPtr<BorderRadiusCornerClipper>> m_corner_clippers;
|
||||
|
||||
struct StackingContext {
|
||||
MaybeOwned<Gfx::Painter> painter;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue