| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org> | 2 * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org> |
| 3 * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org> | 3 * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org> |
| 4 * | 4 * |
| 5 * This library is free software; you can redistribute it and/or | 5 * This library is free software; you can redistribute it and/or |
| 6 * modify it under the terms of the GNU Library General Public | 6 * modify it under the terms of the GNU Library General Public |
| 7 * License as published by the Free Software Foundation; either | 7 * License as published by the Free Software Foundation; either |
| 8 * version 2 of the License, or (at your option) any later version. | 8 * version 2 of the License, or (at your option) any later version. |
| 9 * | 9 * |
| 10 * This library is distributed in the hope that it will be useful, | 10 * This library is distributed in the hope that it will be useful, |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 67 visitor->trace(m_baseFrequency); | 67 visitor->trace(m_baseFrequency); |
| 68 visitor->trace(m_seed); | 68 visitor->trace(m_seed); |
| 69 visitor->trace(m_stitchTiles); | 69 visitor->trace(m_stitchTiles); |
| 70 visitor->trace(m_type); | 70 visitor->trace(m_type); |
| 71 visitor->trace(m_numOctaves); | 71 visitor->trace(m_numOctaves); |
| 72 SVGFilterPrimitiveStandardAttributes::trace(visitor); | 72 SVGFilterPrimitiveStandardAttributes::trace(visitor); |
| 73 } | 73 } |
| 74 | 74 |
| 75 DEFINE_NODE_FACTORY(SVGFETurbulenceElement) | 75 DEFINE_NODE_FACTORY(SVGFETurbulenceElement) |
| 76 | 76 |
| 77 bool SVGFETurbulenceElement::isSupportedAttribute(const QualifiedName& attrName) | |
| 78 { | |
| 79 DEFINE_STATIC_LOCAL(HashSet<QualifiedName>, supportedAttributes, ()); | |
| 80 if (supportedAttributes.isEmpty()) { | |
| 81 supportedAttributes.add(SVGNames::baseFrequencyAttr); | |
| 82 supportedAttributes.add(SVGNames::numOctavesAttr); | |
| 83 supportedAttributes.add(SVGNames::seedAttr); | |
| 84 supportedAttributes.add(SVGNames::stitchTilesAttr); | |
| 85 supportedAttributes.add(SVGNames::typeAttr); | |
| 86 } | |
| 87 return supportedAttributes.contains<SVGAttributeHashTranslator>(attrName); | |
| 88 } | |
| 89 | |
| 90 bool SVGFETurbulenceElement::setFilterEffectAttribute(FilterEffect* effect, cons
t QualifiedName& attrName) | 77 bool SVGFETurbulenceElement::setFilterEffectAttribute(FilterEffect* effect, cons
t QualifiedName& attrName) |
| 91 { | 78 { |
| 92 FETurbulence* turbulence = static_cast<FETurbulence*>(effect); | 79 FETurbulence* turbulence = static_cast<FETurbulence*>(effect); |
| 93 if (attrName == SVGNames::typeAttr) | 80 if (attrName == SVGNames::typeAttr) |
| 94 return turbulence->setType(m_type->currentValue()->enumValue()); | 81 return turbulence->setType(m_type->currentValue()->enumValue()); |
| 95 if (attrName == SVGNames::stitchTilesAttr) | 82 if (attrName == SVGNames::stitchTilesAttr) |
| 96 return turbulence->setStitchTiles(m_stitchTiles->currentValue()->enumVal
ue()); | 83 return turbulence->setStitchTiles(m_stitchTiles->currentValue()->enumVal
ue()); |
| 97 if (attrName == SVGNames::baseFrequencyAttr) { | 84 if (attrName == SVGNames::baseFrequencyAttr) { |
| 98 bool baseFrequencyXChanged = turbulence->setBaseFrequencyX(baseFrequency
X()->currentValue()->value()); | 85 bool baseFrequencyXChanged = turbulence->setBaseFrequencyX(baseFrequency
X()->currentValue()->value()); |
| 99 bool baseFrequencyYChanged = turbulence->setBaseFrequencyY(baseFrequency
Y()->currentValue()->value()); | 86 bool baseFrequencyYChanged = turbulence->setBaseFrequencyY(baseFrequency
Y()->currentValue()->value()); |
| 100 return (baseFrequencyXChanged || baseFrequencyYChanged); | 87 return (baseFrequencyXChanged || baseFrequencyYChanged); |
| 101 } | 88 } |
| 102 if (attrName == SVGNames::seedAttr) | 89 if (attrName == SVGNames::seedAttr) |
| 103 return turbulence->setSeed(m_seed->currentValue()->value()); | 90 return turbulence->setSeed(m_seed->currentValue()->value()); |
| 104 if (attrName == SVGNames::numOctavesAttr) | 91 if (attrName == SVGNames::numOctavesAttr) |
| 105 return turbulence->setNumOctaves(m_numOctaves->currentValue()->value()); | 92 return turbulence->setNumOctaves(m_numOctaves->currentValue()->value()); |
| 106 | 93 |
| 107 ASSERT_NOT_REACHED(); | 94 ASSERT_NOT_REACHED(); |
| 108 return false; | 95 return false; |
| 109 } | 96 } |
| 110 | 97 |
| 111 void SVGFETurbulenceElement::svgAttributeChanged(const QualifiedName& attrName) | 98 void SVGFETurbulenceElement::svgAttributeChanged(const QualifiedName& attrName) |
| 112 { | 99 { |
| 113 if (!isSupportedAttribute(attrName)) { | |
| 114 SVGFilterPrimitiveStandardAttributes::svgAttributeChanged(attrName); | |
| 115 return; | |
| 116 } | |
| 117 | |
| 118 SVGElement::InvalidationGuard invalidationGuard(this); | |
| 119 | |
| 120 if (attrName == SVGNames::baseFrequencyAttr | 100 if (attrName == SVGNames::baseFrequencyAttr |
| 121 || attrName == SVGNames::numOctavesAttr | 101 || attrName == SVGNames::numOctavesAttr |
| 122 || attrName == SVGNames::seedAttr | 102 || attrName == SVGNames::seedAttr |
| 123 || attrName == SVGNames::stitchTilesAttr | 103 || attrName == SVGNames::stitchTilesAttr |
| 124 || attrName == SVGNames::typeAttr) { | 104 || attrName == SVGNames::typeAttr) { |
| 105 SVGElement::InvalidationGuard invalidationGuard(this); |
| 125 primitiveAttributeChanged(attrName); | 106 primitiveAttributeChanged(attrName); |
| 126 return; | 107 return; |
| 127 } | 108 } |
| 128 | 109 |
| 129 ASSERT_NOT_REACHED(); | 110 SVGFilterPrimitiveStandardAttributes::svgAttributeChanged(attrName); |
| 130 } | 111 } |
| 131 | 112 |
| 132 PassRefPtrWillBeRawPtr<FilterEffect> SVGFETurbulenceElement::build(SVGFilterBuil
der*, Filter* filter) | 113 PassRefPtrWillBeRawPtr<FilterEffect> SVGFETurbulenceElement::build(SVGFilterBuil
der*, Filter* filter) |
| 133 { | 114 { |
| 134 if (baseFrequencyX()->currentValue()->value() < 0 || baseFrequencyY()->curre
ntValue()->value() < 0) | 115 if (baseFrequencyX()->currentValue()->value() < 0 || baseFrequencyY()->curre
ntValue()->value() < 0) |
| 135 return nullptr; | 116 return nullptr; |
| 136 return FETurbulence::create(filter, m_type->currentValue()->enumValue(), bas
eFrequencyX()->currentValue()->value(), baseFrequencyY()->currentValue()->value(
), m_numOctaves->currentValue()->value(), m_seed->currentValue()->value(), m_sti
tchTiles->currentValue()->enumValue() == SVG_STITCHTYPE_STITCH); | 117 return FETurbulence::create(filter, m_type->currentValue()->enumValue(), bas
eFrequencyX()->currentValue()->value(), baseFrequencyY()->currentValue()->value(
), m_numOctaves->currentValue()->value(), m_seed->currentValue()->value(), m_sti
tchTiles->currentValue()->enumValue() == SVG_STITCHTYPE_STITCH); |
| 137 } | 118 } |
| 138 | 119 |
| 139 } // namespace blink | 120 } // namespace blink |
| OLD | NEW |