FEComponentTransfer element doesn't support dynamic invalidation
authorreni@webkit.org <reni@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 13 Oct 2011 16:33:19 +0000 (16:33 +0000)
committerreni@webkit.org <reni@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 13 Oct 2011 16:33:19 +0000 (16:33 +0000)
commitd9209572f74b9bb2be93702a46f4432d5e57df75
tree4c867fd2e1b8330a5293f0a865c0fdcd08c95ff8
parentaa6f03b18658d9d505900502b3289abd8694ab9c
FEComponentTransfer element doesn't support dynamic invalidation
https://bugs.webkit.org/show_bug.cgi?id=69747

Source/WebCore:

The dynamic changes are captured by the svgAttributeChange() function, and
invalidate the filter primitive if necessary.
invalidateFilterPrimitiveParent() is a new free function in
SVGFilterPrimitiveStanardAttributes what makes the invalidation possible
by objects not inherited from SVGFilterPrimitiveStanardAttributes too.
This solution was used in SVGFEMergeNodeElement::svgAttributeChanged()
previously and now it can use this new function too.

Reviewed by Nikolas Zimmermann.

Tests: svg/dynamic-updates/SVGFEComponentTransferElement-dom-amplitude-attr.html
       svg/dynamic-updates/SVGFEComponentTransferElement-dom-exponent-attr.html
       svg/dynamic-updates/SVGFEComponentTransferElement-dom-intercept-attr.html
       svg/dynamic-updates/SVGFEComponentTransferElement-dom-offset-attr.html
       svg/dynamic-updates/SVGFEComponentTransferElement-dom-slope-attr.html
       svg/dynamic-updates/SVGFEComponentTransferElement-dom-tableValues-attr.html
       svg/dynamic-updates/SVGFEComponentTransferElement-dom-type-attr.html
       svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-amplitude-prop.html
       svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-exponent-prop.html
       svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-intercept-prop.html
       svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-offset-prop.html
       svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-slope-prop.html
       svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-tableValues-prop.html
       svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-type-prop.html

* svg/SVGComponentTransferFunctionElement.cpp:
(WebCore::SVGComponentTransferFunctionElement::svgAttributeChanged):
* svg/SVGComponentTransferFunctionElement.h:
* svg/SVGFEComponentTransferElement.cpp:
(WebCore::SVGFEComponentTransferElement::build):
* svg/SVGFEMergeNodeElement.cpp:
(WebCore::SVGFEMergeNodeElement::svgAttributeChanged):
* svg/SVGFilterPrimitiveStandardAttributes.cpp:
(WebCore::invalidateFilterPrimitiveParent):
* svg/SVGFilterPrimitiveStandardAttributes.h:

LayoutTests:

Adding new tests for feComponentTransfer dynamic changes.

Reviewed by Nikolas Zimmermann.

* platform/mac/svg/dynamic-updates/SVGFEComponentTransferElement-dom-amplitude-attr-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFEComponentTransferElement-dom-exponent-attr-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFEComponentTransferElement-dom-intercept-attr-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFEComponentTransferElement-dom-offset-attr-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFEComponentTransferElement-dom-slope-attr-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFEComponentTransferElement-dom-tableValues-attr-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFEComponentTransferElement-dom-type-attr-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-amplitude-prop-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-exponent-prop-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-intercept-prop-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-offset-prop-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-slope-prop-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-tableValues-prop-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-type-prop-expected.png: Added.
* svg/dynamic-updates/SVGFEComponentTransferElement-dom-amplitude-attr-expected.txt: Added.
* svg/dynamic-updates/SVGFEComponentTransferElement-dom-amplitude-attr.html: Added.
* svg/dynamic-updates/SVGFEComponentTransferElement-dom-exponent-attr-expected.txt: Added.
* svg/dynamic-updates/SVGFEComponentTransferElement-dom-exponent-attr.html: Added.
* svg/dynamic-updates/SVGFEComponentTransferElement-dom-intercept-attr-expected.txt: Added.
* svg/dynamic-updates/SVGFEComponentTransferElement-dom-intercept-attr.html: Added.
* svg/dynamic-updates/SVGFEComponentTransferElement-dom-offset-attr-expected.txt: Added.
* svg/dynamic-updates/SVGFEComponentTransferElement-dom-offset-attr.html: Added.
* svg/dynamic-updates/SVGFEComponentTransferElement-dom-slope-attr-expected.txt: Added.
* svg/dynamic-updates/SVGFEComponentTransferElement-dom-slope-attr.html: Added.
* svg/dynamic-updates/SVGFEComponentTransferElement-dom-tableValues-attr-expected.txt: Added.
* svg/dynamic-updates/SVGFEComponentTransferElement-dom-tableValues-attr.html: Added.
* svg/dynamic-updates/SVGFEComponentTransferElement-dom-type-attr-expected.txt: Added.
* svg/dynamic-updates/SVGFEComponentTransferElement-dom-type-attr.html: Added.
* svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-amplitude-prop-expected.txt: Added.
* svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-amplitude-prop.html: Added.
* svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-exponent-prop-expected.txt: Added.
* svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-exponent-prop.html: Added.
* svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-intercept-prop-expected.txt: Added.
* svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-intercept-prop.html: Added.
* svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-offset-prop-expected.txt: Added.
* svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-offset-prop.html: Added.
* svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-slope-prop-expected.txt: Added.
* svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-slope-prop.html: Added.
* svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-tableValues-prop-expected.txt: Added.
* svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-tableValues-prop.html: Added.
* svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-type-prop-expected.txt: Added.
* svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-type-prop.html: Added.
* svg/dynamic-updates/script-tests/SVGFEComponentTransferElement-dom-amplitude-attr.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFEComponentTransferElement-dom-exponent-attr.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFEComponentTransferElement-dom-intercept-attr.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFEComponentTransferElement-dom-offset-attr.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFEComponentTransferElement-dom-slope-attr.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFEComponentTransferElement-dom-tableValues-attr.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFEComponentTransferElement-dom-type-attr.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFEComponentTransferElement-svgdom-amplitude-prop.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFEComponentTransferElement-svgdom-exponent-prop.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFEComponentTransferElement-svgdom-intercept-prop.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFEComponentTransferElement-svgdom-offset-prop.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFEComponentTransferElement-svgdom-slope-prop.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFEComponentTransferElement-svgdom-tableValues-prop.js: Added.
(SVGNumberListToString):
(executeTest):
* svg/dynamic-updates/script-tests/SVGFEComponentTransferElement-svgdom-type-prop.js: Added.
(executeTest):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@97369 268f45cc-cd09-0410-ab3c-d52691b4dbfc
64 files changed:
LayoutTests/ChangeLog
LayoutTests/platform/mac/svg/dynamic-updates/SVGFEComponentTransferElement-dom-amplitude-attr-expected.png [new file with mode: 0644]
LayoutTests/platform/mac/svg/dynamic-updates/SVGFEComponentTransferElement-dom-exponent-attr-expected.png [new file with mode: 0644]
LayoutTests/platform/mac/svg/dynamic-updates/SVGFEComponentTransferElement-dom-intercept-attr-expected.png [new file with mode: 0644]
LayoutTests/platform/mac/svg/dynamic-updates/SVGFEComponentTransferElement-dom-offset-attr-expected.png [new file with mode: 0644]
LayoutTests/platform/mac/svg/dynamic-updates/SVGFEComponentTransferElement-dom-slope-attr-expected.png [new file with mode: 0644]
LayoutTests/platform/mac/svg/dynamic-updates/SVGFEComponentTransferElement-dom-tableValues-attr-expected.png [new file with mode: 0644]
LayoutTests/platform/mac/svg/dynamic-updates/SVGFEComponentTransferElement-dom-type-attr-expected.png [new file with mode: 0644]
LayoutTests/platform/mac/svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-amplitude-prop-expected.png [new file with mode: 0644]
LayoutTests/platform/mac/svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-exponent-prop-expected.png [new file with mode: 0644]
LayoutTests/platform/mac/svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-intercept-prop-expected.png [new file with mode: 0644]
LayoutTests/platform/mac/svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-offset-prop-expected.png [new file with mode: 0644]
LayoutTests/platform/mac/svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-slope-prop-expected.png [new file with mode: 0644]
LayoutTests/platform/mac/svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-tableValues-prop-expected.png [new file with mode: 0644]
LayoutTests/platform/mac/svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-type-prop-expected.png [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEComponentTransferElement-dom-amplitude-attr-expected.txt [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEComponentTransferElement-dom-amplitude-attr.html [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEComponentTransferElement-dom-exponent-attr-expected.txt [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEComponentTransferElement-dom-exponent-attr.html [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEComponentTransferElement-dom-intercept-attr-expected.txt [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEComponentTransferElement-dom-intercept-attr.html [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEComponentTransferElement-dom-offset-attr-expected.txt [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEComponentTransferElement-dom-offset-attr.html [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEComponentTransferElement-dom-slope-attr-expected.txt [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEComponentTransferElement-dom-slope-attr.html [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEComponentTransferElement-dom-tableValues-attr-expected.txt [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEComponentTransferElement-dom-tableValues-attr.html [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEComponentTransferElement-dom-type-attr-expected.txt [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEComponentTransferElement-dom-type-attr.html [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-amplitude-prop-expected.txt [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-amplitude-prop.html [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-exponent-prop-expected.txt [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-exponent-prop.html [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-intercept-prop-expected.txt [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-intercept-prop.html [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-offset-prop-expected.txt [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-offset-prop.html [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-slope-prop-expected.txt [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-slope-prop.html [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-tableValues-prop-expected.txt [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-tableValues-prop.html [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-type-prop-expected.txt [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-type-prop.html [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/script-tests/SVGFEComponentTransferElement-dom-amplitude-attr.js [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/script-tests/SVGFEComponentTransferElement-dom-exponent-attr.js [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/script-tests/SVGFEComponentTransferElement-dom-intercept-attr.js [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/script-tests/SVGFEComponentTransferElement-dom-offset-attr.js [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/script-tests/SVGFEComponentTransferElement-dom-slope-attr.js [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/script-tests/SVGFEComponentTransferElement-dom-tableValues-attr.js [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/script-tests/SVGFEComponentTransferElement-dom-type-attr.js [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/script-tests/SVGFEComponentTransferElement-svgdom-amplitude-prop.js [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/script-tests/SVGFEComponentTransferElement-svgdom-exponent-prop.js [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/script-tests/SVGFEComponentTransferElement-svgdom-intercept-prop.js [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/script-tests/SVGFEComponentTransferElement-svgdom-offset-prop.js [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/script-tests/SVGFEComponentTransferElement-svgdom-slope-prop.js [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/script-tests/SVGFEComponentTransferElement-svgdom-tableValues-prop.js [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/script-tests/SVGFEComponentTransferElement-svgdom-type-prop.js [new file with mode: 0644]
Source/WebCore/ChangeLog
Source/WebCore/svg/SVGComponentTransferFunctionElement.cpp
Source/WebCore/svg/SVGComponentTransferFunctionElement.h
Source/WebCore/svg/SVGFEComponentTransferElement.cpp
Source/WebCore/svg/SVGFEMergeNodeElement.cpp
Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp
Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h