|
|
@@ -35,34 +35,34 @@
|
|
|
|
|
|
namespace Rml {
|
|
|
|
|
|
-bool FilterBlur::Initialise(NumericValue in_radius)
|
|
|
+bool FilterBlur::Initialise(NumericValue in_sigma)
|
|
|
{
|
|
|
- radius_value = in_radius;
|
|
|
- return Any(in_radius.unit & Unit::LENGTH);
|
|
|
+ sigma_value = in_sigma;
|
|
|
+ return Any(in_sigma.unit & Unit::LENGTH);
|
|
|
}
|
|
|
|
|
|
CompiledFilter FilterBlur::CompileFilter(Element* element) const
|
|
|
{
|
|
|
- const float radius = element->ResolveLength(radius_value);
|
|
|
- return element->GetRenderManager()->CompileFilter("blur", Dictionary{{"radius", Variant(radius)}});
|
|
|
+ const float radius = element->ResolveLength(sigma_value);
|
|
|
+ return element->GetRenderManager()->CompileFilter("blur", Dictionary{{"sigma", Variant(radius)}});
|
|
|
}
|
|
|
|
|
|
void FilterBlur::ExtendInkOverflow(Element* element, Rectanglef& scissor_region) const
|
|
|
{
|
|
|
- const float radius = element->ResolveLength(radius_value);
|
|
|
- const float blur_extent = 1.5f * Math::Max(radius, 1.f);
|
|
|
+ const float sigma = element->ResolveLength(sigma_value);
|
|
|
+ const float blur_extent = 3.0f * Math::Max(sigma, 1.f);
|
|
|
scissor_region.Extend(blur_extent);
|
|
|
}
|
|
|
|
|
|
FilterBlurInstancer::FilterBlurInstancer()
|
|
|
{
|
|
|
- ids.radius = RegisterProperty("radius", "0px").AddParser("length").GetId();
|
|
|
- RegisterShorthand("filter", "radius", ShorthandType::FallThrough);
|
|
|
+ ids.sigma = RegisterProperty("sigma", "0px").AddParser("length").GetId();
|
|
|
+ RegisterShorthand("filter", "sigma", ShorthandType::FallThrough);
|
|
|
}
|
|
|
|
|
|
SharedPtr<Filter> FilterBlurInstancer::InstanceFilter(const String& /*name*/, const PropertyDictionary& properties)
|
|
|
{
|
|
|
- const Property* p_radius = properties.GetProperty(ids.radius);
|
|
|
+ const Property* p_radius = properties.GetProperty(ids.sigma);
|
|
|
if (!p_radius)
|
|
|
return nullptr;
|
|
|
|