Changeset 80022 in webkit


Ignore:
Timestamp:
Mar 1, 2011 12:15:20 PM (13 years ago)
Author:
reni@webkit.org
Message:

2011-03-01 Renata Hodovan <reni@webkit.org>

Reviewed by Andreas Kling.

FEDisplacementMapElement changes doesn't require relayout
https://bugs.webkit.org/show_bug.cgi?id=55454

When the FEDisplacementMapElement receives an update message but the given value remains the same we don't need
to relayout the filter.

No new tests are needed because this modification is covered by the dynamic update tests of FEDisplacementMap.

  • platform/graphics/filters/FEDisplacementMap.cpp: (WebCore::FEDisplacementMap::setXChannelSelector): (WebCore::FEDisplacementMap::setYChannelSelector): (WebCore::FEDisplacementMap::setScale):
  • platform/graphics/filters/FEDisplacementMap.h:
  • svg/SVGFEDisplacementMapElement.cpp: (WebCore::SVGFEDisplacementMapElement::setFilterEffectAttribute): (WebCore::SVGFEDisplacementMapElement::svgAttributeChanged):
  • svg/SVGFEDisplacementMapElement.h:
Location:
trunk/Source/WebCore
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r80015 r80022  
     12011-03-01  Renata Hodovan  <reni@webkit.org>
     2
     3        Reviewed by Andreas Kling.
     4
     5        FEDisplacementMapElement changes doesn't require relayout
     6        https://bugs.webkit.org/show_bug.cgi?id=55454
     7
     8        When the FEDisplacementMapElement receives an update message but the given value remains the same we don't need
     9        to relayout the filter.
     10
     11        No new tests are needed because this modification is covered by the dynamic update tests of FEDisplacementMap.
     12
     13        * platform/graphics/filters/FEDisplacementMap.cpp:
     14        (WebCore::FEDisplacementMap::setXChannelSelector):
     15        (WebCore::FEDisplacementMap::setYChannelSelector):
     16        (WebCore::FEDisplacementMap::setScale):
     17        * platform/graphics/filters/FEDisplacementMap.h:
     18        * svg/SVGFEDisplacementMapElement.cpp:
     19        (WebCore::SVGFEDisplacementMapElement::setFilterEffectAttribute):
     20        (WebCore::SVGFEDisplacementMapElement::svgAttributeChanged):
     21        * svg/SVGFEDisplacementMapElement.h:
     22
    1232011-03-01  Dan Bernstein  <mitz@apple.com>
    224
  • trunk/Source/WebCore/platform/graphics/filters/FEDisplacementMap.cpp

    r75377 r80022  
    5555}
    5656
    57 void FEDisplacementMap::setXChannelSelector(const ChannelSelectorType xChannelSelector)
     57bool FEDisplacementMap::setXChannelSelector(const ChannelSelectorType xChannelSelector)
    5858{
     59    if (m_xChannelSelector == xChannelSelector)
     60        return false;
    5961    m_xChannelSelector = xChannelSelector;
     62    return true;
    6063}
    6164
     
    6568}
    6669
    67 void FEDisplacementMap::setYChannelSelector(const ChannelSelectorType yChannelSelector)
     70bool FEDisplacementMap::setYChannelSelector(const ChannelSelectorType yChannelSelector)
    6871{
     72    if (m_yChannelSelector == yChannelSelector)
     73        return false;
    6974    m_yChannelSelector = yChannelSelector;
     75    return true;
    7076}
    7177
     
    7581}
    7682
    77 void FEDisplacementMap::setScale(float scale)
     83bool FEDisplacementMap::setScale(float scale)
    7884{
     85    if (m_scale == scale)
     86        return false;
    7987    m_scale = scale;
     88    return true;
    8089}
    8190
  • trunk/Source/WebCore/platform/graphics/filters/FEDisplacementMap.h

    r72474 r80022  
    4343
    4444    ChannelSelectorType xChannelSelector() const;
    45     void setXChannelSelector(const ChannelSelectorType);
     45    bool setXChannelSelector(const ChannelSelectorType);
    4646
    4747    ChannelSelectorType yChannelSelector() const;
    48     void setYChannelSelector(const ChannelSelectorType);
     48    bool setYChannelSelector(const ChannelSelectorType);
    4949
    5050    float scale() const;
    51     void setScale(float scale);
     51    bool setScale(float);
    5252
    5353    virtual void apply();
  • trunk/Source/WebCore/svg/SVGFEDisplacementMapElement.cpp

    r78345 r80022  
    8080}
    8181
     82bool SVGFEDisplacementMapElement::setFilterEffectAttribute(FilterEffect* effect, const QualifiedName& attrName)
     83{
     84    FEDisplacementMap* displacementMap = static_cast<FEDisplacementMap*>(effect);
     85    if (attrName == SVGNames::xChannelSelectorAttr)
     86        return displacementMap->setXChannelSelector(static_cast<ChannelSelectorType>(xChannelSelector()));
     87    if (attrName == SVGNames::yChannelSelectorAttr)
     88        return displacementMap->setYChannelSelector(static_cast<ChannelSelectorType>(yChannelSelector()));
     89    if (attrName == SVGNames::scaleAttr)
     90        return displacementMap->setScale(scale());
     91
     92    ASSERT_NOT_REACHED();
     93    return false;
     94}
     95
    8296void SVGFEDisplacementMapElement::svgAttributeChanged(const QualifiedName& attrName)
    8397{
     
    86100    if (attrName == SVGNames::xChannelSelectorAttr
    87101        || attrName == SVGNames::yChannelSelectorAttr
    88         || attrName == SVGNames::inAttr
    89         || attrName == SVGNames::in2Attr
    90102        || attrName == SVGNames::scaleAttr)
     103        primitiveAttributeChanged(attrName);
     104
     105    if (attrName == SVGNames::inAttr
     106        || attrName == SVGNames::in2Attr)
    91107        invalidate();
    92108}
  • trunk/Source/WebCore/svg/SVGFEDisplacementMapElement.h

    r78249 r80022  
    3939   
    4040    virtual void parseMappedAttribute(Attribute*);
     41    virtual bool setFilterEffectAttribute(FilterEffect*, const QualifiedName& attrName);
    4142    virtual void svgAttributeChanged(const QualifiedName&);
    4243    virtual void synchronizeProperty(const QualifiedName&);
Note: See TracChangeset for help on using the changeset viewer.