summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/svg/SVGFECompositeElement.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/svg/SVGFECompositeElement.cpp')
-rw-r--r--Source/WebCore/svg/SVGFECompositeElement.cpp27
1 files changed, 24 insertions, 3 deletions
diff --git a/Source/WebCore/svg/SVGFECompositeElement.cpp b/Source/WebCore/svg/SVGFECompositeElement.cpp
index af738a9..1c40921 100644
--- a/Source/WebCore/svg/SVGFECompositeElement.cpp
+++ b/Source/WebCore/svg/SVGFECompositeElement.cpp
@@ -82,17 +82,38 @@ void SVGFECompositeElement::parseMappedAttribute(Attribute* attr)
SVGFilterPrimitiveStandardAttributes::parseMappedAttribute(attr);
}
+bool SVGFECompositeElement::setFilterEffectAttribute(FilterEffect* effect, const QualifiedName& attrName)
+{
+ FEComposite* composite = static_cast<FEComposite*>(effect);
+ if (attrName == SVGNames::operatorAttr)
+ return composite->setOperation(static_cast<CompositeOperationType>(_operator()));
+ if (attrName == SVGNames::k1Attr)
+ return composite->setK1(k1());
+ if (attrName == SVGNames::k2Attr)
+ return composite->setK2(k2());
+ if (attrName == SVGNames::k3Attr)
+ return composite->setK3(k3());
+ if (attrName == SVGNames::k4Attr)
+ return composite->setK4(k4());
+
+ ASSERT_NOT_REACHED();
+ return false;
+}
+
+
void SVGFECompositeElement::svgAttributeChanged(const QualifiedName& attrName)
{
SVGFilterPrimitiveStandardAttributes::svgAttributeChanged(attrName);
- if (attrName == SVGNames::inAttr
- || attrName == SVGNames::in2Attr
- || attrName == SVGNames::operatorAttr
+ if (attrName == SVGNames::operatorAttr
|| attrName == SVGNames::k1Attr
|| attrName == SVGNames::k2Attr
|| attrName == SVGNames::k3Attr
|| attrName == SVGNames::k4Attr)
+ primitiveAttributeChanged(attrName);
+
+ if (attrName == SVGNames::inAttr
+ || attrName == SVGNames::in2Attr)
invalidate();
}