/* * Copyright (c) 2026, Shannon Booth * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include namespace Web::SVG { // https://www.w3.org/TR/filter-effects-1/#InterfaceSVGFECompositeElement class SVGFEDropShadowElement final : public SVGElement , public SVGFilterPrimitiveStandardAttributes { WEB_PLATFORM_OBJECT(SVGFEDropShadowElement, SVGElement); GC_DECLARE_ALLOCATOR(SVGFEDropShadowElement); public: virtual ~SVGFEDropShadowElement() override = default; GC::Ref in1(); GC::Ref dx(); GC::Ref dy(); GC::Ref std_deviation_x(); GC::Ref std_deviation_y(); void set_std_deviation(float std_deviation_x, float std_deviation_y); Gfx::Color flood_color(); float flood_opacity() const; private: SVGFEDropShadowElement(DOM::Document&, DOM::QualifiedName); virtual void initialize(JS::Realm&) override; virtual void visit_edges(Cell::Visitor&) override; GC::Ptr m_in1; GC::Ptr m_dx; GC::Ptr m_dy; GC::Ptr m_std_deviation_x; GC::Ptr m_std_deviation_y; }; }