Skip to content
  • zimmermann@webkit.org's avatar
    <feImage> has problems referencing local elements · cf042420
    zimmermann@webkit.org authored
    https://bugs.webkit.org/show_bug.cgi?id=76800
    
    Reviewed by Zoltan Herczeg.
    
    Source/WebCore:
    
    <feImage> referencing local elements are currently rendered into an ImageBuffer
    by SVGFEImageElement, using the local coordinates of the referenced renderer.
    
    This approach is buggy and should be avoided, by moving the rendering fully
    into SVGFEImage, which takes care of respecting the correct transformations.
    
    This fixes <feImage> + local references, which currently breaks two tests in trunk.
    Covered by existing tests.
    
    * rendering/svg/RenderSVGResourceFilterPrimitive.cpp:
    (WebCore::RenderSVGResourceFilterPrimitive::determineFilterPrimitiveSubregion):
    * svg/SVGFEImageElement.cpp:
    (WebCore::SVGFEImageElement::build):
    * svg/graphics/filters/SVGFEImage.cpp:
    (WebCore::FEImage::FEImage):
    (WebCore::FEImage::createWithImage):
    (WebCore::FEImage::createWithIRIReference):
    (WebCore::FEImage::determineAbsolutePaintRect):
    (WebCore::FEImage::referencedRenderer):
    (WebCore::FEImage::platformApplySoftware):
    (WebCore::FEImage::externalRepresentation):
    * svg/graphics/filters/SVGFEImage.h:
    (WebCore::FEImage::~FEImage):
    * svg/graphics/filters/SVGFilter.h:
    (WebCore::SVGFilter::absoluteTransform):
    
    LayoutTests:
    
    Update svg/filters/feImage-reference-* results, which are fixed now.
    
    * platform/chromium/test_expectations.txt : Updated.
    * platform/mac/svg/W3C-SVG-1.1/filters-composite-02-b-expected.png: Update for marginal change.
    * svg/filters/feImage-reference-invalidation-expected.png:
    * svg/filters/feImage-reference-svg-primitive-expected.png:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@105612 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    cf042420