Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 9e8747f4819708b1c2cfa80ba0bf32a6042e9a2f
      
https://github.com/WebKit/WebKit/commit/9e8747f4819708b1c2cfa80ba0bf32a6042e9a2f
  Author: Rob Buis <[email protected]>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M LayoutTests/platform/mac-sonoma-wk2-lbse-text/TestExpectations
    A 
LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/nested-pattern-boundingBoxModeContent-expected.txt
    M Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp
    M Source/WebCore/rendering/svg/RenderSVGResourcePattern.h
    M Source/WebCore/svg/SVGGraphicsElement.cpp
    M Source/WebCore/svg/SVGPatternElement.cpp
    M Source/WebCore/svg/SVGSVGElement.cpp

  Log Message:
  -----------
  [LBSE] Improve RenderSVGResourcePattern
https://bugs.webkit.org/show_bug.cgi?id=269184

Reviewed by Nikolas Zimmermann.

Improve pattern resource implementation in the following ways:
- take legacy pattern resource calculations to fix 
custom/nested-pattern-boundingBoxModeContent.svg
- cache pattern tiles as image bitmaps (like legacy did). This allows 
pattern-nested-reference.html to not time out
- take care of correctly invalidating in case pattern contents change or a 
referencing client is added or removed

This PR relies on SVGGraphicsElement::invalidateResourceImageBuffersIfNeeded 
introduced in r277292 and adds
patterns as an SVG resource to invalidate for image buffer caching. The 
expectation is that this is the final
SVG resource that needs to be taken into account in 
SVGGraphicsElement::invalidateResourceImageBuffersIfNeeded.

* LayoutTests/platform/mac-sonoma-wk2-lbse-text/TestExpectations:
* 
LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/nested-pattern-boundingBoxModeContent-expected.txt:
 Added.
* Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::buildPattern):
(WebCore::RenderSVGResourcePattern::prepareFillOperation):
(WebCore::RenderSVGResourcePattern::prepareStrokeOperation):
(WebCore::RenderSVGResourcePattern::createTileImage const):
(WebCore::RenderSVGResourcePattern::removeReferencingCSSClient):
(WebCore::clear2DRotation): Deleted.
* Source/WebCore/rendering/svg/RenderSVGResourcePattern.h:
(WebCore::RenderSVGResourcePattern::invalidatePattern):
* Source/WebCore/svg/SVGGraphicsElement.cpp:
(WebCore::SVGGraphicsElement::invalidateResourceImageBuffersIfNeeded):
* Source/WebCore/svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::childrenChanged):
* Source/WebCore/svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::svgAttributeChanged):

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to