Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: db4c995fc7b47368c3f67671b89c42dc632402a7 https://github.com/WebKit/WebKit/commit/db4c995fc7b47368c3f67671b89c42dc632402a7 Author: Rob Buis <rb...@igalia.com> Date: 2024-01-30 (Tue, 30 Jan 2024)
Changed paths: M LayoutTests/platform/mac-sonoma-wk2-lbse-text/TestExpectations M LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/W3C-SVG-1.1/pservers-grad-03-b-expected.txt M LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/batik/paints/patternRegionA-expected.txt M LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/absolute-root-position-masking-expected.txt M LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/absolute-sized-content-with-resources-expected.png A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/js-update-pattern-child-expected.txt A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/js-update-pattern-expected.txt A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/oversized-pattern-scale-expected.txt A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/pattern-cycle-detection-expected.png A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/pattern-cycle-detection-expected.txt A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/pattern-excessive-malloc-expected.txt A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/pattern-in-defs-expected.txt A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/pattern-no-pixelation-expected.png A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/pattern-no-pixelation-expected.txt A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/pattern-rotate-gaps-expected.txt A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/pattern-size-bigger-than-target-size-expected.txt A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/pattern-userSpaceOnUse-userToBaseTransform-expected.txt A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/pattern-y-offset-expected.png A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/pattern-y-offset-expected.txt A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/pending-resource-after-removal-expected.txt A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/recursive-pattern-expected.txt A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/repaint/pattern-object-bounding-box-update-pattern-content-expected.txt A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/repaint/pattern-user-space-on-use-update-pattern-content-expected.txt M LayoutTests/platform/mac-sonoma-wk2-pixel/svg/custom/pattern-no-pixelation-expected.png R LayoutTests/platform/mac-sonoma-wk2-pixel/svg/custom/pattern-skew-transformed-expected.png M LayoutTests/platform/mac-sonoma-wk2-pixel/svg/custom/pattern-y-offset-expected.png M LayoutTests/platform/mac-sonoma-wk2-pixel/svg/custom/recursive-pattern-expected.png A LayoutTests/svg/repaint/pattern-object-bounding-box-expected.txt A LayoutTests/svg/repaint/pattern-object-bounding-box-transformed-expected.txt A LayoutTests/svg/repaint/pattern-object-bounding-box-transformed.html A LayoutTests/svg/repaint/pattern-object-bounding-box-update-pattern-content-expected.txt A LayoutTests/svg/repaint/pattern-object-bounding-box-update-pattern-content.html A LayoutTests/svg/repaint/pattern-object-bounding-box.html A LayoutTests/svg/repaint/pattern-user-space-on-use-expected.txt A LayoutTests/svg/repaint/pattern-user-space-on-use-transformed-expected.txt A LayoutTests/svg/repaint/pattern-user-space-on-use-transformed.html A LayoutTests/svg/repaint/pattern-user-space-on-use-update-pattern-content-expected.txt A LayoutTests/svg/repaint/pattern-user-space-on-use-update-pattern-content.html A LayoutTests/svg/repaint/pattern-user-space-on-use.html M Source/WebCore/Sources.txt M Source/WebCore/WebCore.xcodeproj/project.pbxproj M Source/WebCore/rendering/ReferencedSVGResources.cpp M Source/WebCore/rendering/RenderLayerModelObject.cpp M Source/WebCore/rendering/RenderObject.h A Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp A Source/WebCore/rendering/svg/RenderSVGResourcePattern.h A Source/WebCore/rendering/svg/RenderSVGResourcePatternInlines.h M Source/WebCore/rendering/svg/SVGInlineTextBox.cpp M Source/WebCore/rendering/svg/SVGRenderSupport.cpp M Source/WebCore/rendering/svg/SVGRenderSupport.h M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourcePattern.cpp M Source/WebCore/svg/SVGElement.cpp M Source/WebCore/svg/SVGPatternElement.cpp Log Message: ----------- [LBSE] Implement support for patterns https://bugs.webkit.org/show_bug.cgi?id=267041 Reviewed by Nikolas Zimmermann. Implement pattern support using a different approach to legacy including the use of RenderLayer::paintSVGLayer ro paint the pattern contents. Right now there is no caching of pattern tiles (unlike in legacy) at all to keep things simple. Note that there are still various pattern test failures due to problems with hidpi. Adding convenient pattern API for stroke painting in GraphicsContext is left for later (see SVGInlineTextBox.cpp). * LayoutTests/platform/mac-sonoma-wk2-lbse-text/TestExpectations: * LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/W3C-SVG-1.1/pservers-grad-03-b-expected.txt: * LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/batik/paints/patternRegionA-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/absolute-sized-content-with-resources-expected.png: * LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/js-update-pattern-child-expected.txt: Added. * LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/js-update-pattern-expected.txt: Added. * LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/oversized-pattern-scale-expected.txt: Added. * LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/pattern-cycle-detection-expected.png: Added. * LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/pattern-cycle-detection-expected.txt: Added. * LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/pattern-excessive-malloc-expected.txt: Added. * LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/pattern-in-defs-expected.txt: Added. * LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/pattern-no-pixelation-expected.png: Added. * LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/pattern-no-pixelation-expected.txt: Added. * LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/pattern-rotate-gaps-expected.txt: Added. * LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/pattern-size-bigger-than-target-size-expected.txt: Added. * LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/pattern-userSpaceOnUse-userToBaseTransform-expected.txt: Added. * LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/pattern-y-offset-expected.png: Added. * LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/pattern-y-offset-expected.txt: Added. * LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/pending-resource-after-removal-expected.txt: Added. * LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/recursive-pattern-expected.txt: Added. * LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/repaint/pattern-object-bounding-box-update-pattern-content-expected.txt: Added. * LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/repaint/pattern-user-space-on-use-update-pattern-content-expected.txt: Added. * LayoutTests/platform/mac-sonoma-wk2-pixel/svg/custom/pattern-no-pixelation-expected.png: * LayoutTests/platform/mac-sonoma-wk2-pixel/svg/custom/pattern-skew-transformed-expected.png: Removed. * LayoutTests/platform/mac-sonoma-wk2-pixel/svg/custom/pattern-y-offset-expected.png: * LayoutTests/platform/mac-sonoma-wk2-pixel/svg/custom/recursive-pattern-expected.png: * LayoutTests/svg/repaint/pattern-object-bounding-box-expected.txt: Added. * LayoutTests/svg/repaint/pattern-object-bounding-box-transformed-expected.txt: Added. * LayoutTests/svg/repaint/pattern-object-bounding-box-transformed.html: Added. * LayoutTests/svg/repaint/pattern-object-bounding-box-update-pattern-content-expected.txt: Added. * LayoutTests/svg/repaint/pattern-object-bounding-box-update-pattern-content.html: Added. * LayoutTests/svg/repaint/pattern-object-bounding-box.html: Added. * LayoutTests/svg/repaint/pattern-user-space-on-use-expected.txt: Added. * LayoutTests/svg/repaint/pattern-user-space-on-use-transformed-expected.txt: Added. * LayoutTests/svg/repaint/pattern-user-space-on-use-transformed.html: Added. * LayoutTests/svg/repaint/pattern-user-space-on-use-update-pattern-content-expected.txt: Added. * LayoutTests/svg/repaint/pattern-user-space-on-use-update-pattern-content.html: Added. * LayoutTests/svg/repaint/pattern-user-space-on-use.html: Added. * Source/WebCore/Sources.txt: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/rendering/ReferencedSVGResources.cpp: (WebCore::ReferencedSVGResources::referencedSVGResourceIDs): (WebCore::ReferencedSVGResources::referencedPaintServerElement): * Source/WebCore/rendering/RenderLayerModelObject.cpp: (WebCore::RenderLayerModelObject::svgFillPaintServerResourceFromStyle const): (WebCore::RenderLayerModelObject::svgStrokePaintServerResourceFromStyle const): * Source/WebCore/rendering/RenderObject.h: (WebCore::RenderObject::isRenderSVGResourcePaintServer const): (WebCore::RenderObject::isRenderSVGResourcePattern const): * Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp: Added. (WebCore::RenderSVGResourcePattern::RenderSVGResourcePattern): (WebCore::RenderSVGResourcePattern::collectPatternAttributesIfNeeded): (WebCore::clear2DRotation): (WebCore::RenderSVGResourcePattern::buildPattern): (WebCore::RenderSVGResourcePattern::prepareFillOperation): (WebCore::RenderSVGResourcePattern::prepareStrokeOperation): (WebCore::RenderSVGResourcePattern::buildTileImageTransform const): (WebCore::RenderSVGResourcePattern::createTileImage const): * Source/WebCore/rendering/svg/RenderSVGResourcePattern.h: Added. (WebCore::RenderSVGResourcePattern::invalidatePattern): * Source/WebCore/rendering/svg/RenderSVGResourcePatternInlines.h: Added. (WebCore::RenderSVGResourcePattern::patternElement const): (WebCore::calculatePatternBoundaries): * Source/WebCore/rendering/svg/SVGInlineTextBox.cpp: (WebCore::SVGInlineTextBox::acquirePaintingResource): (WebCore::SVGInlineTextBox::releasePaintingResource): (WebCore::SVGInlineTextBox::paintTextWithShadows): * Source/WebCore/rendering/svg/SVGRenderSupport.cpp: (WebCore::SVGHitTestCycleDetectionScope::SVGHitTestCycleDetectionScope): (WebCore::SVGHitTestCycleDetectionScope::~SVGHitTestCycleDetectionScope): * Source/WebCore/rendering/svg/SVGRenderSupport.h: * Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourcePattern.cpp: (WebCore::LegacyRenderSVGResourcePattern::LegacyRenderSVGResourcePattern): * Source/WebCore/svg/SVGElement.cpp: (WebCore::isSVGLayerAwareElement): * Source/WebCore/svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::svgAttributeChanged): (WebCore::SVGPatternElement::createElementRenderer): Canonical link: https://commits.webkit.org/273757@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes