Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a73cf0548cd6e04f725ac36102b13cb4890781da
      
https://github.com/WebKit/WebKit/commit/a73cf0548cd6e04f725ac36102b13cb4890781da
  Author: Said Abou-Hallawa <s...@apple.com>
  Date:   2023-09-22 (Fri, 22 Sep 2023)

  Changed paths:
    A LayoutTests/css3/filters/drop-shadow-child-clipped-expected.html
    A LayoutTests/css3/filters/drop-shadow-child-clipped.html
    M LayoutTests/fast/filter-image/clipped-filter.html
    M Source/WebCore/platform/graphics/filters/FilterImageTargetSwitcher.h
    M Source/WebCore/platform/graphics/filters/FilterStyleTargetSwitcher.h
    M Source/WebCore/platform/graphics/filters/FilterTargetSwitcher.h
    M Source/WebCore/rendering/RenderLayer.cpp
    M Source/WebCore/rendering/RenderLayerFilters.cpp
    M Source/WebCore/rendering/RenderLayerFilters.h
    M Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp

  Log Message:
  -----------
  [Filters] Do not clip the destination context when compositing the filter 
style transparency layers
https://bugs.webkit.org/show_bug.cgi?id=261926
rdar://115901634

Reviewed by Simon Fraser.

Clipping is not needed at that time because it has to be applied to the filter
style transparency layers before drawing the target element.

If this unneeded clipping is applied, removing this clipping will overlap with
ending the transparency layers. This will end up calling 
GraphicsContext::restore()
with the wrong purpose.

Rename FilterTargetSwitcher::needsRedrawSourceImage() to hasSourceImage() and
flip its meaning. This will make differentiating software filters from style
filters clearer. When hasSourceImage() is true, this means the target element is
drawn to an ImageBuffer.

* LayoutTests/css3/filters/drop-shadow-child-clipped-expected.html: Added.
* LayoutTests/css3/filters/drop-shadow-child-clipped.html: Added.
* LayoutTests/fast/filter-image/clipped-filter.html:
* Source/WebCore/platform/graphics/filters/FilterImageTargetSwitcher.h:
* Source/WebCore/platform/graphics/filters/FilterStyleTargetSwitcher.h:
(): Deleted.
* Source/WebCore/platform/graphics/filters/FilterTargetSwitcher.h:
(WebCore::FilterTargetSwitcher::hasSourceImage const):
(WebCore::FilterTargetSwitcher::needsRedrawSourceImage const): Deleted.
* Source/WebCore/rendering/RenderLayer.cpp:
(WebCore::RenderLayer::applyFilters):
* Source/WebCore/rendering/RenderLayerFilters.cpp:
(WebCore::RenderLayerFilters::hasSourceImage const):
(WebCore::RenderLayerFilters::beginFilterEffect):
(WebCore::RenderLayerFilters::needsRedrawSourceImage const): Deleted.
* Source/WebCore/rendering/RenderLayerFilters.h:
* Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::applyResource):

Canonical link: https://commits.webkit.org/268341@main


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to