[webkit-changes] [WebKit/WebKit] a73cf0: [Filters] Do not clip the destination context when...
Said Abou-Hallawa
noreply at github.com
Fri Sep 22 16:06:14 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: a73cf0548cd6e04f725ac36102b13cb4890781da
https://github.com/WebKit/WebKit/commit/a73cf0548cd6e04f725ac36102b13cb4890781da
Author: Said Abou-Hallawa <said at 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
More information about the webkit-changes
mailing list