[webkit-changes] [WebKit/WebKit] 08ff1e: [LBSE] Add RenderSVGResourceMasker
Rob Buis
noreply at github.com
Mon Nov 27 10:55:56 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 08ff1e4f09f8c06c8ffae86dd8e1bb4feed8abe5
https://github.com/WebKit/WebKit/commit/08ff1e4f09f8c06c8ffae86dd8e1bb4feed8abe5
Author: Rob Buis <rbuis at igalia.com>
Date: 2023-11-27 (Mon, 27 Nov 2023)
Changed paths:
M LayoutTests/platform/mac-sonoma-wk2-lbse-text/TestExpectations
M LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/W3C-SVG-1.1/masking-intro-01-f-expected.txt
M LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/W3C-SVG-1.1/masking-mask-01-b-expected.txt
M LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/absolute-root-position-masking-expected.txt
A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/empty-mask-expected.txt
A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/js-late-mask-and-object-creation-expected.txt
A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/js-late-mask-creation-expected.txt
A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/mask-changes-expected.txt
A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/mask-child-changes-expected.txt
A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/mask-colorspace-expected.txt
A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/mask-excessive-malloc-expected.txt
A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/mask-inside-defs-expected.txt
A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/mask-invalidation-expected.txt
A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/mask-with-all-units-expected.txt
A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/mask-with-default-value-expected.txt
A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/recursive-mask-expected.txt
M LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/transformedMaskFails-expected.txt
A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/visibility-override-mask-expected.txt
M LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/filters/filter-clip-expected.txt
M LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/foreignObject/mask-expected.txt
M LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/repaint/mask-clip-target-transform-expected.txt
M LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/repaint/text-mask-update-expected.txt
A LayoutTests/svg/repaint/mask-object-bounding-box-expected.txt
A LayoutTests/svg/repaint/mask-object-bounding-box-shrink-expected.txt
A LayoutTests/svg/repaint/mask-object-bounding-box-shrink.html
A LayoutTests/svg/repaint/mask-object-bounding-box-transformed-expected.txt
A LayoutTests/svg/repaint/mask-object-bounding-box-transformed.html
A LayoutTests/svg/repaint/mask-object-bounding-box.html
A LayoutTests/svg/repaint/mask-user-space-on-use-expected.txt
A LayoutTests/svg/repaint/mask-user-space-on-use-shrink-expected.txt
A LayoutTests/svg/repaint/mask-user-space-on-use-shrink.html
A LayoutTests/svg/repaint/mask-user-space-on-use-transformed-expected.txt
A LayoutTests/svg/repaint/mask-user-space-on-use-transformed.html
A LayoutTests/svg/repaint/mask-user-space-on-use.html
M Source/WebCore/Sources.txt
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/rendering/RenderLayerModelObject.cpp
M Source/WebCore/rendering/RenderLayerModelObject.h
M Source/WebCore/rendering/RenderObject.h
M Source/WebCore/rendering/svg/RenderSVGContainer.cpp
M Source/WebCore/rendering/svg/RenderSVGForeignObject.cpp
M Source/WebCore/rendering/svg/RenderSVGImage.cpp
A Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp
A Source/WebCore/rendering/svg/RenderSVGResourceMasker.h
A Source/WebCore/rendering/svg/RenderSVGResourceMaskerInlines.h
M Source/WebCore/rendering/svg/RenderSVGRoot.cpp
M Source/WebCore/rendering/svg/RenderSVGShape.cpp
M Source/WebCore/rendering/svg/RenderSVGText.cpp
M Source/WebCore/rendering/svg/SVGBoundingBoxComputation.cpp
M Source/WebCore/rendering/svg/SVGRenderSupport.cpp
M Source/WebCore/rendering/svg/SVGRenderSupport.h
M Source/WebCore/rendering/svg/SVGResources.cpp
M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceMasker.cpp
M Source/WebCore/svg/SVGElement.cpp
M Source/WebCore/svg/SVGMaskElement.cpp
M Source/WebCore/svg/SVGMaskElement.h
Log Message:
-----------
[LBSE] Add RenderSVGResourceMasker
https://bugs.webkit.org/show_bug.cgi?id=264049
Reviewed by Nikolas Zimmermann.
Implement the second SVG resource in LBSE: masking (RenderSVGResourceMasker).
Mask content invalidations/changes are supported.
The resource takes cyclic references into account.
Covered by existing tests (dozens of progressions, see TestExpectations).
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/TestExpectations:
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/W3C-SVG-1.1/masking-intro-01-f-expected.txt:
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/W3C-SVG-1.1/masking-mask-01-b-expected.txt:
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/absolute-root-position-masking-expected.txt:
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/empty-mask-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/js-late-mask-and-object-creation-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/js-late-mask-creation-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/mask-changes-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/mask-child-changes-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/mask-colorspace-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/mask-excessive-malloc-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/mask-inside-defs-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/mask-invalidation-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/mask-with-all-units-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/mask-with-default-value-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/recursive-mask-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/transformedMaskFails-expected.txt:
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/visibility-override-mask-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/filters/filter-clip-expected.txt:
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/foreignObject/mask-expected.txt:
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/repaint/mask-clip-target-transform-expected.txt:
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/repaint/text-mask-update-expected.txt:
* LayoutTests/svg/repaint/mask-object-bounding-box-expected.txt: Added.
* LayoutTests/svg/repaint/mask-object-bounding-box-shrink-expected.txt: Added.
* LayoutTests/svg/repaint/mask-object-bounding-box-shrink.html: Added.
* LayoutTests/svg/repaint/mask-object-bounding-box-transformed-expected.txt: Added.
* LayoutTests/svg/repaint/mask-object-bounding-box-transformed.html: Added.
* LayoutTests/svg/repaint/mask-object-bounding-box.html: Added.
* LayoutTests/svg/repaint/mask-user-space-on-use-expected.txt: Added.
* LayoutTests/svg/repaint/mask-user-space-on-use-shrink-expected.txt: Added.
* LayoutTests/svg/repaint/mask-user-space-on-use-shrink.html: Added.
* LayoutTests/svg/repaint/mask-user-space-on-use-transformed-expected.txt: Added.
* LayoutTests/svg/repaint/mask-user-space-on-use-transformed.html: Added.
* LayoutTests/svg/repaint/mask-user-space-on-use.html: Added.
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::svgMaskerResourceFromStyle const):
(WebCore::RenderLayerModelObject::paintSVGClippingMask const):
(WebCore::RenderLayerModelObject::paintSVGMask const):
* Source/WebCore/rendering/RenderLayerModelObject.h:
* Source/WebCore/rendering/RenderObject.h:
(WebCore::RenderObject::isRenderSVGResourceContainer const):
(WebCore::RenderObject::isRenderSVGResourceMasker const):
* Source/WebCore/rendering/svg/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::paint):
* Source/WebCore/rendering/svg/RenderSVGForeignObject.cpp:
(WebCore::RenderSVGForeignObject::paint):
* Source/WebCore/rendering/svg/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::paint):
* Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp: Added.
(WebCore::RenderSVGResourceMasker::RenderSVGResourceMasker):
(WebCore::createImageBuffer):
(WebCore::RenderSVGResourceMasker::applyMask):
(WebCore::RenderSVGResourceMasker::resourceBoundingBox):
* Source/WebCore/rendering/svg/RenderSVGResourceMasker.h: Added.
* Source/WebCore/rendering/svg/RenderSVGResourceMaskerInlines.h: Added.
(WebCore::RenderSVGResourceMasker::maskElement const):
(WebCore::RenderSVGResourceMasker::maskUnits const):
(WebCore::RenderSVGResourceMasker::maskContentUnits const):
* Source/WebCore/rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::paintObject):
* Source/WebCore/rendering/svg/RenderSVGShape.cpp:
(WebCore::RenderSVGShape::paint):
* Source/WebCore/rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::paint):
* Source/WebCore/rendering/svg/SVGBoundingBoxComputation.cpp:
(WebCore::SVGBoundingBoxComputation::adjustBoxForClippingAndEffects const):
* Source/WebCore/rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::paintSVGClippingMask): Deleted.
* Source/WebCore/rendering/svg/SVGRenderSupport.h:
* Source/WebCore/rendering/svg/SVGResources.cpp:
(WebCore::SVGResources::buildCachedResources):
* Source/WebCore/svg/SVGElement.cpp:
(WebCore::isSVGLayerAwareElement):
* Source/WebCore/svg/SVGMaskElement.cpp:
(WebCore::SVGMaskElement::createElementRenderer):
(WebCore::SVGMaskElement::calculateMaskContentRepaintRect):
* Source/WebCore/svg/SVGMaskElement.h:
Canonical link: https://commits.webkit.org/271153@main
More information about the webkit-changes
mailing list