From 1cbdecfa9fc428ac2d8aca0fa91c9580b3d57353 Mon Sep 17 00:00:00 2001 From: The Android Open Source Project Date: Wed, 17 Dec 2008 18:05:15 -0800 Subject: Code drop from //branches/cupcake/...@124589 --- WebCore/svg/SVGFEMergeElement.cpp | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) (limited to 'WebCore/svg/SVGFEMergeElement.cpp') diff --git a/WebCore/svg/SVGFEMergeElement.cpp b/WebCore/svg/SVGFEMergeElement.cpp index 7c7fd75..5ccf403 100644 --- a/WebCore/svg/SVGFEMergeElement.cpp +++ b/WebCore/svg/SVGFEMergeElement.cpp @@ -38,23 +38,30 @@ SVGFEMergeElement::SVGFEMergeElement(const QualifiedName& tagName, Document* doc SVGFEMergeElement::~SVGFEMergeElement() { - delete m_filterEffect; } -SVGFEMerge* SVGFEMergeElement::filterEffect(SVGResourceFilter* filter) const +SVGFilterEffect* SVGFEMergeElement::filterEffect(SVGResourceFilter* filter) const { - if (!m_filterEffect) - m_filterEffect = new SVGFEMerge(filter); - setStandardAttributes(m_filterEffect); + ASSERT_NOT_REACHED(); + return 0; +} - Vector mergeInputs; +bool SVGFEMergeElement::build(FilterBuilder* builder) +{ + Vector mergeInputs; for (Node* n = firstChild(); n != 0; n = n->nextSibling()) { - if (n->hasTagName(SVGNames::feMergeNodeTag)) - mergeInputs.append(static_cast(n)->in1()); + if (n->hasTagName(SVGNames::feMergeNodeTag)) { + FilterEffect* mergeEffect = builder->getEffectById(static_cast(n)->in1()); + mergeInputs.append(mergeEffect); + } } - m_filterEffect->setMergeInputs(mergeInputs); - return m_filterEffect; + if(mergeInputs.isEmpty()) + return false; + + builder->add(result(), FEMerge::create(mergeInputs)); + + return true; } } -- cgit v1.1