1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-28 02:07:35 +00:00

LibWeb/Painting: Do not clip border radius when it is out of viewport

Painting optimization to do less unnecessary work.
This commit is contained in:
Aliaksandr Kalenik 2023-10-18 16:24:20 +02:00 committed by Andreas Kling
parent b835d2bd66
commit 708574d373
3 changed files with 10 additions and 2 deletions

View file

@ -41,10 +41,13 @@ public:
DevicePixelSize corner_bitmap_size;
} m_data;
BorderRadiusCornerClipper(CornerData corner_data, NonnullRefPtr<Gfx::Bitmap> corner_bitmap, CornerClip corner_clip)
DevicePixelRect border_rect() const { return m_border_rect; }
BorderRadiusCornerClipper(CornerData corner_data, NonnullRefPtr<Gfx::Bitmap> corner_bitmap, CornerClip corner_clip, DevicePixelRect const& border_rect)
: m_data(move(corner_data))
, m_corner_bitmap(corner_bitmap)
, m_corner_clip(corner_clip)
, m_border_rect(border_rect)
{
}
@ -52,6 +55,7 @@ private:
NonnullRefPtr<Gfx::Bitmap> m_corner_bitmap;
bool m_has_sampled { false };
CornerClip m_corner_clip { false };
DevicePixelRect m_border_rect;
};
struct ScopedCornerRadiusClip {