mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-30 12:49:19 +00:00
LibWeb/SVG: Implement resolution for a subset of SVG filters
This commit is contained in:
parent
5d85959f5f
commit
635adc8aa7
Notes:
github-actions[bot]
2025-07-09 17:08:27 +00:00
Author: https://github.com/ananas-dev
Commit: 635adc8aa7
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/5028
Reviewed-by: https://github.com/gmta ✅
10 changed files with 161 additions and 17 deletions
|
@ -98,6 +98,9 @@ String FilterValueListStyleValue::to_string(SerializationMode) const
|
|||
}());
|
||||
|
||||
builder.append(color.amount.to_string());
|
||||
},
|
||||
[&](CSS::URL const& url) {
|
||||
builder.append(url.to_string());
|
||||
});
|
||||
builder.append(')');
|
||||
first = false;
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
#include <LibWeb/CSS/Length.h>
|
||||
#include <LibWeb/CSS/Number.h>
|
||||
#include <LibWeb/CSS/PercentageOr.h>
|
||||
#include <LibWeb/CSS/URL.h>
|
||||
|
||||
namespace Web::CSS {
|
||||
|
||||
|
@ -53,18 +54,18 @@ struct Color {
|
|||
|
||||
};
|
||||
|
||||
using FilterFunction = Variant<FilterOperation::Blur, FilterOperation::DropShadow, FilterOperation::HueRotate, FilterOperation::Color>;
|
||||
using FilterValue = Variant<FilterOperation::Blur, FilterOperation::DropShadow, FilterOperation::HueRotate, FilterOperation::Color, URL>;
|
||||
|
||||
class FilterValueListStyleValue final : public StyleValueWithDefaultOperators<FilterValueListStyleValue> {
|
||||
public:
|
||||
static ValueComparingNonnullRefPtr<FilterValueListStyleValue const> create(
|
||||
Vector<FilterFunction> filter_value_list)
|
||||
Vector<FilterValue> filter_value_list)
|
||||
{
|
||||
VERIFY(filter_value_list.size() >= 1);
|
||||
return adopt_ref(*new (nothrow) FilterValueListStyleValue(move(filter_value_list)));
|
||||
}
|
||||
|
||||
Vector<FilterFunction> const& filter_value_list() const { return m_filter_value_list; }
|
||||
Vector<FilterValue> const& filter_value_list() const { return m_filter_value_list; }
|
||||
|
||||
virtual String to_string(SerializationMode) const override;
|
||||
|
||||
|
@ -73,14 +74,14 @@ public:
|
|||
bool properties_equal(FilterValueListStyleValue const& other) const { return m_filter_value_list == other.m_filter_value_list; }
|
||||
|
||||
private:
|
||||
FilterValueListStyleValue(Vector<FilterFunction> filter_value_list)
|
||||
FilterValueListStyleValue(Vector<FilterValue> filter_value_list)
|
||||
: StyleValueWithDefaultOperators(Type::FilterValueList)
|
||||
, m_filter_value_list(move(filter_value_list))
|
||||
{
|
||||
}
|
||||
|
||||
// FIXME: No support for SVG filters yet
|
||||
Vector<FilterFunction> m_filter_value_list;
|
||||
Vector<FilterValue> m_filter_value_list;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue