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

Reply via email to