Skip to content
  • krit@webkit.org's avatar
    2011-04-21 Dirk Schulze <krit@webkit.org> · c08f88a4
    krit@webkit.org authored
            Reviewed by Nikolas Zimmermann.
    
            SVG feDropShadow implementation of SVG Filters 1.2
            https://bugs.webkit.org/show_bug.cgi?id=52513
    
            Added dynamic update tests for FEDropShadow as well as a basic pixel test.
    
            * platform/mac/svg/dynamic-updates/SVGFEDropShadowElement-dom-dx-attr-expected.checksum: Added.
            * platform/mac/svg/dynamic-updates/SVGFEDropShadowElement-dom-dx-attr-expected.png: Added.
            * platform/mac/svg/dynamic-updates/SVGFEDropShadowElement-dom-dy-attr-expected.checksum: Added.
            * platform/mac/svg/dynamic-updates/SVGFEDropShadowElement-dom-dy-attr-expected.png: Added.
            * platform/mac/svg/dynamic-updates/SVGFEDropShadowElement-dom-in-attr-expected.checksum: Added.
            * platform/mac/svg/dynamic-updates/SVGFEDropShadowElement-dom-in-attr-expected.png: Added.
            * platform/mac/svg/dynamic-updates/SVGFEDropShadowElement-dom-shadow-color-attr-expected.checksum: Added.
            * platform/mac/svg/dynamic-updates/SVGFEDropShadowElement-dom-shadow-color-attr-expected.png: Added.
            * platform/mac/svg/dynamic-updates/SVGFEDropShadowElement-dom-shadow-opacity-attr-expected.checksum: Added.
            * platform/mac/svg/dynamic-updates/SVGFEDropShadowElement-dom-shadow-opacity-attr-expected.png: Added.
            * platform/mac/svg/dynamic-updates/SVGFEDropShadowElement-dom-stdDeviation-attr-expected.checksum: Added.
            * platform/mac/svg/dynamic-updates/SVGFEDropShadowElement-dom-stdDeviation-attr-expected.png: Added.
            * platform/mac/svg/dynamic-updates/SVGFEDropShadowElement-svgdom-dx-prop-expected.checksum: Added.
            * platform/mac/svg/dynamic-updates/SVGFEDropShadowElement-svgdom-dx-prop-expected.png: Added.
            * platform/mac/svg/dynamic-updates/SVGFEDropShadowElement-svgdom-dy-prop-expected.checksum: Added.
            * platform/mac/svg/dynamic-updates/SVGFEDropShadowElement-svgdom-dy-prop-expected.png: Added.
            * platform/mac/svg/dynamic-updates/SVGFEDropShadowElement-svgdom-in-prop-expected.checksum: Added.
            * platform/mac/svg/dynamic-updates/SVGFEDropShadowElement-svgdom-in-prop-expected.png: Added.
            * platform/mac/svg/dynamic-updates/SVGFEDropShadowElement-svgdom-shadow-color-prop-expected.checksum: Added.
            * platform/mac/svg/dynamic-updates/SVGFEDropShadowElement-svgdom-shadow-color-prop-expected.png: Added.
            * platform/mac/svg/dynamic-updates/SVGFEDropShadowElement-svgdom-shadow-opacity-prop-expected.checksum: Added.
            * platform/mac/svg/dynamic-updates/SVGFEDropShadowElement-svgdom-shadow-opacity-prop-expected.png: Added.
            * platform/mac/svg/dynamic-updates/SVGFEDropShadowElement-svgdom-stdDeviation-prop-expected.checksum: Added.
            * platform/mac/svg/dynamic-updates/SVGFEDropShadowElement-svgdom-stdDeviation-prop-expected.png: Added.
            * platform/mac/svg/filters/feDropShadow-expected.checksum: Added.
            * platform/mac/svg/filters/feDropShadow-expected.png: Added.
            * platform/mac/svg/filters/feDropShadow-expected.txt: Added.
            * svg/dynamic-updates/SVGFEDropShadowElement-dom-dx-attr-expected.txt: Added.
            * svg/dynamic-updates/SVGFEDropShadowElement-dom-dx-attr.html: Added.
            * svg/dynamic-updates/SVGFEDropShadowElement-dom-dy-attr-expected.txt: Added.
            * svg/dynamic-updates/SVGFEDropShadowElement-dom-dy-attr.html: Added.
            * svg/dynamic-updates/SVGFEDropShadowElement-dom-in-attr-expected.txt: Added.
            * svg/dynamic-updates/SVGFEDropShadowElement-dom-in-attr.html: Added.
            * svg/dynamic-updates/SVGFEDropShadowElement-dom-shadow-color-attr-expected.txt: Added.
            * svg/dynamic-updates/SVGFEDropShadowElement-dom-shadow-color-attr.html: Added.
            * svg/dynamic-updates/SVGFEDropShadowElement-dom-shadow-opacity-attr-expected.txt: Added.
            * svg/dynamic-updates/SVGFEDropShadowElement-dom-shadow-opacity-attr.html: Added.
            * svg/dynamic-updates/SVGFEDropShadowElement-dom-stdDeviation-attr-expected.txt: Added.
            * svg/dynamic-updates/SVGFEDropShadowElement-dom-stdDeviation-attr.html: Added.
            * svg/dynamic-updates/SVGFEDropShadowElement-svgdom-dx-prop-expected.txt: Added.
            * svg/dynamic-updates/SVGFEDropShadowElement-svgdom-dx-prop.html: Added.
            * svg/dynamic-updates/SVGFEDropShadowElement-svgdom-dy-prop-expected.txt: Added.
            * svg/dynamic-updates/SVGFEDropShadowElement-svgdom-dy-prop.html: Added.
            * svg/dynamic-updates/SVGFEDropShadowElement-svgdom-in-prop-expected.txt: Added.
            * svg/dynamic-updates/SVGFEDropShadowElement-svgdom-in-prop.html: Added.
            * svg/dynamic-updates/SVGFEDropShadowElement-svgdom-shadow-color-prop-expected.txt: Added.
            * svg/dynamic-updates/SVGFEDropShadowElement-svgdom-shadow-color-prop.html: Added.
            * svg/dynamic-updates/SVGFEDropShadowElement-svgdom-shadow-opacity-prop-expected.txt: Added.
            * svg/dynamic-updates/SVGFEDropShadowElement-svgdom-shadow-opacity-prop.html: Added.
            * svg/dynamic-updates/SVGFEDropShadowElement-svgdom-stdDeviation-prop-expected.txt: Added.
            * svg/dynamic-updates/SVGFEDropShadowElement-svgdom-stdDeviation-prop.html: Added.
            * svg/dynamic-updates/SVGFETurbulenceElement-svgdom-numOctaves-prop.html:
            * svg/dynamic-updates/SVGFETurbulenceElement-svgdom-seed-prop.html:
            * svg/dynamic-updates/SVGFETurbulenceElement-svgdom-stitchTiles-prop.html:
            * svg/dynamic-updates/SVGFETurbulenceElement-svgdom-type-prop.html:
            * svg/dynamic-updates/script-tests/SVGFEDropShadowElement-dom-dx-attr.js: Added.
            (executeTest):
            * svg/dynamic-updates/script-tests/SVGFEDropShadowElement-dom-dy-attr.js: Added.
            (executeTest):
            * svg/dynamic-updates/script-tests/SVGFEDropShadowElement-dom-in-attr.js: Added.
            (executeTest):
            * svg/dynamic-updates/script-tests/SVGFEDropShadowElement-dom-shadow-color-attr.js: Added.
            (executeTest):
            * svg/dynamic-updates/script-tests/SVGFEDropShadowElement-dom-shadow-opacity-attr.js: Added.
            (executeTest):
            * svg/dynamic-updates/script-tests/SVGFEDropShadowElement-dom-stdDeviation-attr.js: Added.
            (executeTest):
            * svg/dynamic-updates/script-tests/SVGFEDropShadowElement-svgdom-dx-prop.js: Added.
            (executeTest):
            * svg/dynamic-updates/script-tests/SVGFEDropShadowElement-svgdom-dy-prop.js: Added.
            (executeTest):
            * svg/dynamic-updates/script-tests/SVGFEDropShadowElement-svgdom-in-prop.js: Added.
            (executeTest):
            * svg/dynamic-updates/script-tests/SVGFEDropShadowElement-svgdom-shadow-color-prop.js: Added.
            (executeTest):
            * svg/dynamic-updates/script-tests/SVGFEDropShadowElement-svgdom-shadow-opacity-prop.js: Added.
            (executeTest):
            * svg/dynamic-updates/script-tests/SVGFEDropShadowElement-svgdom-stdDeviation-prop.js: Added.
            (executeTest):
            * svg/filters/feDropShadow.svg: Added.
    2011-04-21  Dirk Schulze  <krit@webkit.org>
    
            Reviewed by Nikolas Zimmermann.
    
            SVG feDropShadow implementation of SVG Filters 1.2
            https://bugs.webkit.org/show_bug.cgi?id=52513
    
            * MigrateHeaders.make:
    2011-04-21  Dirk Schulze  <krit@webkit.org>
    
            Reviewed by Nikolas Zimmermann.
    
            SVG feDropShadow implementation of SVG Filters 1.2
            https://bugs.webkit.org/show_bug.cgi?id=52513
    
            This is the implementation of feDropShadow, a shorthand filter and a combination of feGaussianBlur,
            feOffset, feFlood and feComposite to create a drop shadow of an input effect.
            Creating this new filter effect makes it possible to optimize the often used workflow. ShadowBlur, with its
            fast blurring algorithm, is used to blur the shadow and composite operators are responsible for combining the
            source with different colored shadows.
            Shadow color and opacity can be set with the properties flood-color and flood-opacity.
    
            Tests: svg/dynamic-updates/SVGFEDropShadowElement-dom-dx-attr.html
                   svg/dynamic-updates/SVGFEDropShadowElement-dom-dy-attr.html
                   svg/dynamic-updates/SVGFEDropShadowElement-dom-in-attr.html
                   svg/dynamic-updates/SVGFEDropShadowElement-dom-shadow-color-attr.html
                   svg/dynamic-updates/SVGFEDropShadowElement-dom-shadow-opacity-attr.html
                   svg/dynamic-updates/SVGFEDropShadowElement-dom-stdDeviation-attr.html
                   svg/dynamic-updates/SVGFEDropShadowElement-svgdom-dx-prop.html
                   svg/dynamic-updates/SVGFEDropShadowElement-svgdom-dy-prop.html
                   svg/dynamic-updates/SVGFEDropShadowElement-svgdom-in-prop.html
                   svg/dynamic-updates/SVGFEDropShadowElement-svgdom-shadow-color-prop.html
                   svg/dynamic-updates/SVGFEDropShadowElement-svgdom-shadow-opacity-prop.html
                   svg/dynamic-updates/SVGFEDropShadowElement-svgdom-stdDeviation-prop.html
                   svg/filters/feDropShadow.svg
    
            * Android.mk:
            * CMakeLists.txt:
            * DerivedSources.cpp:
            * DerivedSources.make:
            * GNUmakefile.list.am:
            * WebCore.exp.in:
            * WebCore.gypi:
            * WebCore.pro:
            * WebCore.vcproj/WebCore.vcproj:
            * WebCore.xcodeproj/project.pbxproj:
            * bindings/objc/DOM.mm:
            (WebCore::createElementClassMap):
            * bindings/objc/DOMSVG.h:
            * page/DOMWindow.idl:
            * platform/graphics/ShadowBlur.cpp: Added missing copyright after r84410.
            * platform/graphics/ShadowBlur.h: Made blurLayerImage public.
            * platform/graphics/filters/FEDropShadow.cpp: Added.
            (WebCore::FEDropShadow::FEDropShadow):
            (WebCore::FEDropShadow::create):
            (WebCore::FEDropShadow::determineAbsolutePaintRect):
            (WebCore::FEDropShadow::apply):
            (WebCore::FEDropShadow::dump):
            (WebCore::FEDropShadow::externalRepresentation):
            * platform/graphics/filters/FEDropShadow.h: Added.
            (WebCore::FEDropShadow::stdDeviationX):
            (WebCore::FEDropShadow::setStdDeviationX):
            (WebCore::FEDropShadow::stdDeviationY):
            (WebCore::FEDropShadow::setStdDeviationY):
            (WebCore::FEDropShadow::dx):
            (WebCore::FEDropShadow::setDx):
            (WebCore::FEDropShadow::dy):
            (WebCore::FEDropShadow::setDy):
            (WebCore::FEDropShadow::shadowColor):
            (WebCore::FEDropShadow::setShadowColor):
            (WebCore::FEDropShadow::shadowOpacity):
            (WebCore::FEDropShadow::setShadowOpacity):
            * platform/graphics/filters/FEGaussianBlur.cpp:
            (WebCore::FEGaussianBlur::calculateKernelSize): Make kernel calculations accessible for feDropShadow.
            * platform/graphics/filters/FEGaussianBlur.h:
            * svg/SVGAllInOne.cpp:
            * svg/SVGFEDropShadowElement.cpp: Added.
            (WebCore::SVGFEDropShadowElement::SVGFEDropShadowElement):
            (WebCore::SVGFEDropShadowElement::create):
            (WebCore::SVGFEDropShadowElement::stdDeviationXIdentifier):
            (WebCore::SVGFEDropShadowElement::stdDeviationYIdentifier):
            (WebCore::SVGFEDropShadowElement::setStdDeviation):
            (WebCore::SVGFEDropShadowElement::parseMappedAttribute):
            (WebCore::SVGFEDropShadowElement::svgAttributeChanged):
            (WebCore::SVGFEDropShadowElement::synchronizeProperty):
            (WebCore::SVGFEDropShadowElement::build):
            * svg/SVGFEDropShadowElement.h: Added.
            * svg/SVGFEDropShadowElement.idl: Added.
            * svg/svgtags.in:
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@84522 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    c08f88a4