/* * Copyright (c) 2024, Aliaksandr Kalenik * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include namespace Web::Painting { struct BorderRadiiClip { CSSPixelRect rect; BorderRadiiData radii; }; struct ClipFrame : public RefCounted { Vector const& border_radii_clips() const { return m_border_radii_clips; } void add_border_radii_clip(BorderRadiiClip border_radii_clip) { for (auto& existing_clip : m_border_radii_clips) { if (border_radii_clip.rect == existing_clip.rect) { existing_clip.radii.union_max_radii(border_radii_clip.radii); return; } } m_border_radii_clips.append(border_radii_clip); } void clear_border_radii_clips() { m_border_radii_clips.clear(); } CSSPixelRect rect() const { return m_rect; } void set_rect(CSSPixelRect rect) { m_rect = rect; } private: CSSPixelRect m_rect; Vector m_border_radii_clips; }; }