/* * Copyright (c) 2022, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include namespace Web::Painting { class SVGGraphicsPaintable : public SVGPaintable { JS_CELL(SVGGraphicsPaintable, SVGPaintable); public: static JS::NonnullGCPtr create(Layout::SVGGraphicsBox const&); Layout::SVGGraphicsBox const& layout_box() const; virtual bool forms_unconnected_subtree() const override; virtual Optional get_masking_area() const override; virtual Optional get_mask_type() const override; virtual RefPtr calculate_mask(PaintContext&, CSSPixelRect const& masking_area) const override; protected: SVGGraphicsPaintable(Layout::SVGGraphicsBox const&); }; }