[webkit-changes] [WebKit/WebKit] 1ab701: [LBSE] Implement support for gradients

Nikolas Zimmermann noreply at github.com
Thu Jan 4 10:18:35 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 1ab7013b94f94e3e31c7c1776cc9adfa34e3ff06
      https://github.com/WebKit/WebKit/commit/1ab7013b94f94e3e31c7c1776cc9adfa34e3ff06
  Author: Nikolas Zimmermann <nzimmermann at igalia.com>
  Date:   2024-01-04 (Thu, 04 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-SE/svgdom-over-01-f-expected.txt
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/W3C-SVG-1.1/masking-mask-01-b-expected.png
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/W3C-SVG-1.1/pservers-grad-07-b-expected.png
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/W3C-SVG-1.1/pservers-grad-08-b-expected.png
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/W3C-SVG-1.1/pservers-grad-11-b-expected.png
    M LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/as-background-image/svg-as-background-6-expected.png
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/css/path-gradient-stroke-shadow-expected.png
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/css/rect-gradient-stroke-shadow-expected.png
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/css/text-gradient-shadow-expected.png
    A 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/broken-internal-references-expected.txt
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/dominant-baseline-hanging-expected.png
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/dominant-baseline-hanging-expected.txt
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/external-paintserver-reference-expected.png
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/fill-fallback-expected.txt
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/gradient-add-stops-expected.txt
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/gradient-attr-update-expected.txt
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/gradient-cycle-detection-expected.txt
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/gradient-deep-referencing-expected.txt
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/gradient-rotated-bbox-expected.txt
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/gradient-stop-corner-cases-expected.txt
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/gradient-stop-style-change-expected.txt
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/gradient-stroke-width-expected.txt
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/gradient-userSpaceOnUse-with-percentage-expected.txt
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/gradient-with-1d-boundingbox-expected.png
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/gradient-with-1d-boundingbox-expected.txt
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/grayscale-gradient-mask-2-expected.png
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/grayscale-gradient-mask-2-expected.txt
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/grayscale-gradient-mask-expected.png
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/grayscale-gradient-mask-expected.txt
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/group-opacity-expected.txt
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/inline-svg-in-xhtml-expected.txt
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/invalid-css-expected.txt
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/invalid-fill-expected.png
    M LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/invalid-uri-stroke-expected.png
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/js-late-gradient-and-object-creation-expected.png
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/js-late-gradient-and-object-creation-expected.txt
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/js-late-gradient-creation-expected.png
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/js-late-gradient-creation-expected.txt
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/js-update-gradient-expected.txt
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/js-update-stop-linked-gradient-expected.txt
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/large-bounding-box-percents-expected.txt
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/non-scaling-stroke-expected.txt
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/radial-gradient-with-outstanding-focalPoint-expected.txt
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/radialGradient-focal-radius-expected.txt
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/recursive-gradient-expected.txt
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/resource-client-removal-expected.txt
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/stroke-fallback-expected.txt
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/text-rotated-gradient-expected.png
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/text-rotated-gradient-expected.txt
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/uri-reference-handling-expected.txt
    R LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/use-multiple-on-nested-disallowed-font-expected.txt
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/xlink-custom-namespace-expected.txt
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/xlink-to-invalid-gradient-expected.txt
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/hixie/error/003-expected.png
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/hixie/perf/004-expected.png
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/text/selection-background-color-expected.png
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/text/selection-styles-expected.png
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/text/text-gradient-positioning-expected.png
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/transforms/text-with-mask-with-svg-transform-expected.png
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/transforms/text-with-mask-with-svg-transform-expected.txt
    M LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/zoom/page/zoom-background-images-expected.png
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/zoom/page/zoom-mask-with-percentages-expected.png
    A LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/zoom/page/zoom-mask-with-percentages-expected.txt
    M Source/WebCore/Sources.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/rendering/ReferencedSVGResources.cpp
    M Source/WebCore/rendering/ReferencedSVGResources.h
    M Source/WebCore/rendering/RenderLayerModelObject.cpp
    M Source/WebCore/rendering/RenderLayerModelObject.h
    M Source/WebCore/rendering/RenderObject.h
    M Source/WebCore/rendering/svg/RenderSVGGradientStop.cpp
    M Source/WebCore/rendering/svg/RenderSVGResourceContainer.cpp
    M Source/WebCore/rendering/svg/RenderSVGResourceContainer.h
    A Source/WebCore/rendering/svg/RenderSVGResourceGradient.cpp
    A Source/WebCore/rendering/svg/RenderSVGResourceGradient.h
    A Source/WebCore/rendering/svg/RenderSVGResourceGradientInlines.h
    A Source/WebCore/rendering/svg/RenderSVGResourceLinearGradient.cpp
    A Source/WebCore/rendering/svg/RenderSVGResourceLinearGradient.h
    A Source/WebCore/rendering/svg/RenderSVGResourceLinearGradientInlines.h
    A Source/WebCore/rendering/svg/RenderSVGResourcePaintServer.cpp
    A Source/WebCore/rendering/svg/RenderSVGResourcePaintServer.h
    A Source/WebCore/rendering/svg/RenderSVGResourceRadialGradient.cpp
    A Source/WebCore/rendering/svg/RenderSVGResourceRadialGradient.h
    A Source/WebCore/rendering/svg/RenderSVGResourceRadialGradientInlines.h
    M Source/WebCore/rendering/svg/RenderSVGShape.cpp
    M Source/WebCore/rendering/svg/RenderSVGShape.h
    M Source/WebCore/rendering/svg/RenderSVGText.cpp
    M Source/WebCore/rendering/svg/SVGInlineTextBox.cpp
    M Source/WebCore/rendering/svg/SVGInlineTextBox.h
    A Source/WebCore/rendering/svg/SVGPaintServerHandling.h
    M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceLinearGradient.cpp
    M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceRadialGradient.cpp
    M Source/WebCore/svg/SVGElement.cpp
    M Source/WebCore/svg/SVGGradientElement.cpp
    M Source/WebCore/svg/SVGGradientElement.h
    M Source/WebCore/svg/SVGLinearGradientElement.cpp
    M Source/WebCore/svg/SVGRadialGradientElement.cpp

  Log Message:
  -----------
  [LBSE] Implement support for gradients
https://bugs.webkit.org/show_bug.cgi?id=265138

Reviewed by Rob Buis.

Implement support for complex "paint servers" in LBSE, aka. non-solid-color filling/stroking.
Introduce RenderSVGResourcePaintServer, as base class for RenderSVGResourceGradient, which
is needed by RenderSVGResourceLinearGradient & RenderSVGResourceRadialGradient.

SVGPaintServerHandling contains all necessary code to request a fill/stroke paint server,
honoring the complex fill/stroke fallback rules (when to inherit from parent style, etc.).

This aligns the invalid fill/stroke URI handling with Gecko & Blink, improving interop.

Previously on Apple platforms, gradients on text were realized by filling a rectangle
using the gradient into a separated ImageBuffer, and then applying this as mask when
painting the filled/stroked text. Rework this code to only use compositing operations
and transparency layers in a cross-platform way.

Following the implementation of the LBSE-style resources, such as RenderSVGResourceClipper
and RenderSVGResourceMasker, LBSE no longer makes use of re-layouts to communicate paint server
changes. Only repaints are necessary - see SVGGradientElement::invalidateGradientResource().

Fixes dozens of tests in LBSE - no changes for the legacy engine.

* LayoutTests/platform/mac-sonoma-wk2-lbse-text/TestExpectations:
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/W3C-SVG-1.1-SE/svgdom-over-01-f-expected.txt:
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/W3C-SVG-1.1/masking-mask-01-b-expected.png: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/W3C-SVG-1.1/pservers-grad-07-b-expected.png: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/W3C-SVG-1.1/pservers-grad-08-b-expected.png: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/W3C-SVG-1.1/pservers-grad-11-b-expected.png: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/as-background-image/svg-as-background-6-expected.png:
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/css/path-gradient-stroke-shadow-expected.png: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/css/rect-gradient-stroke-shadow-expected.png: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/css/text-gradient-shadow-expected.png: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/absolute-sized-content-with-resources-expected.png: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/broken-internal-references-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/dominant-baseline-hanging-expected.png: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/dominant-baseline-hanging-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/external-paintserver-reference-expected.png: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/fill-fallback-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/gradient-add-stops-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/gradient-attr-update-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/gradient-cycle-detection-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/gradient-deep-referencing-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/gradient-rotated-bbox-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/gradient-stop-corner-cases-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/gradient-stop-style-change-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/gradient-stroke-width-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/gradient-userSpaceOnUse-with-percentage-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/gradient-with-1d-boundingbox-expected.png: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/gradient-with-1d-boundingbox-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/grayscale-gradient-mask-2-expected.png: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/grayscale-gradient-mask-2-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/grayscale-gradient-mask-expected.png: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/grayscale-gradient-mask-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/group-opacity-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/inline-svg-in-xhtml-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/invalid-css-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/invalid-fill-expected.png: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/invalid-uri-stroke-expected.png:
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/js-late-gradient-and-object-creation-expected.png: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/js-late-gradient-and-object-creation-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/js-late-gradient-creation-expected.png: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/js-late-gradient-creation-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/js-update-gradient-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/js-update-stop-linked-gradient-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/large-bounding-box-percents-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/non-scaling-stroke-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/radial-gradient-with-outstanding-focalPoint-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/radialGradient-focal-radius-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/recursive-gradient-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/resource-client-removal-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/stroke-fallback-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/text-rotated-gradient-expected.png: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/text-rotated-gradient-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/uri-reference-handling-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/use-multiple-on-nested-disallowed-font-expected.txt: Removed.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/xlink-custom-namespace-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/custom/xlink-to-invalid-gradient-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/hixie/error/003-expected.png: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/hixie/perf/004-expected.png: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/text/selection-background-color-expected.png: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/text/selection-styles-expected.png: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/text/text-gradient-positioning-expected.png: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/transforms/text-with-mask-with-svg-transform-expected.png: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/transforms/text-with-mask-with-svg-transform-expected.txt: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/zoom/page/zoom-background-images-expected.png:
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/zoom/page/zoom-mask-with-percentages-expected.png: Added.
* LayoutTests/platform/mac-sonoma-wk2-lbse-text/svg/zoom/page/zoom-mask-with-percentages-expected.txt: Added.
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/rendering/ReferencedSVGResources.cpp:
(WebCore::ReferencedSVGResources::referencedSVGResourceIDs):
(WebCore::ReferencedSVGResources::updateReferencedResources):
(WebCore::ReferencedSVGResources::elementForResourceIDs):
(WebCore::ReferencedSVGResources::referencedPaintServerElement):
* Source/WebCore/rendering/ReferencedSVGResources.h:
* Source/WebCore/rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::svgFillPaintServerResourceFromStyle const):
(WebCore::RenderLayerModelObject::svgStrokePaintServerResourceFromStyle const):
* Source/WebCore/rendering/RenderLayerModelObject.h:
* Source/WebCore/rendering/RenderObject.h:
(WebCore::RenderObject::isRenderSVGResourceGradient const):
(WebCore::RenderObject::isRenderSVGResourcePaintServer const):
(WebCore::RenderObject::isRenderSVGResourceLinearGradient const):
(WebCore::RenderObject::isRenderSVGResourceRadialGradient const):
* Source/WebCore/rendering/svg/RenderSVGGradientStop.cpp:
(WebCore::RenderSVGGradientStop::styleDidChange):
* Source/WebCore/rendering/svg/RenderSVGResourceContainer.cpp:
* Source/WebCore/rendering/svg/RenderSVGResourceContainer.h:
* Source/WebCore/rendering/svg/RenderSVGResourceGradient.cpp: Added.
(WebCore::RenderSVGResourceGradient::RenderSVGResourceGradient):
(WebCore::RenderSVGResourceGradient::stopsByApplyingColorFilter const):
(WebCore::RenderSVGResourceGradient::platformSpreadMethodFromSVGType const):
(WebCore::RenderSVGResourceGradient::buildGradientIfNeeded):
(WebCore::RenderSVGResourceGradient::prepareFillOperation):
(WebCore::RenderSVGResourceGradient::prepareStrokeOperation):
* Source/WebCore/rendering/svg/RenderSVGResourceGradient.h: Added.
* Source/WebCore/rendering/svg/RenderSVGResourceGradientInlines.h: Added.
(WebCore::RenderSVGResourceGradient::gradientElement const):
* Source/WebCore/rendering/svg/RenderSVGResourceLinearGradient.cpp: Added.
(WebCore::RenderSVGResourceLinearGradient::RenderSVGResourceLinearGradient):
(WebCore::RenderSVGResourceLinearGradient::collectGradientAttributesIfNeeded):
(WebCore::RenderSVGResourceLinearGradient::createGradient):
* Source/WebCore/rendering/svg/RenderSVGResourceLinearGradient.h: Added.
* Source/WebCore/rendering/svg/RenderSVGResourceLinearGradientInlines.h: Added.
(WebCore::RenderSVGResourceLinearGradient::linearGradientElement const):
* Source/WebCore/rendering/svg/RenderSVGResourcePaintServer.cpp: Added.
(WebCore::RenderSVGResourcePaintServer::RenderSVGResourcePaintServer):
* Source/WebCore/rendering/svg/RenderSVGResourcePaintServer.h: Added.
* Source/WebCore/rendering/svg/RenderSVGResourceRadialGradient.cpp: Added.
(WebCore::RenderSVGResourceRadialGradient::RenderSVGResourceRadialGradient):
(WebCore::RenderSVGResourceRadialGradient::collectGradientAttributesIfNeeded):
(WebCore::RenderSVGResourceRadialGradient::createGradient):
* Source/WebCore/rendering/svg/RenderSVGResourceRadialGradient.h: Added.
* Source/WebCore/rendering/svg/RenderSVGResourceRadialGradientInlines.h: Added.
(WebCore::RenderSVGResourceRadialGradient::radialGradientElement const):
* Source/WebCore/rendering/svg/RenderSVGShape.cpp:
(WebCore::RenderSVGShape::fillContains):
(WebCore::RenderSVGShape::strokeContains):
(WebCore::RenderSVGShape::fillShape):
(WebCore::RenderSVGShape::strokeShape):
(WebCore::RenderSVGShape::strokeShapeInternal): Deleted.
* Source/WebCore/rendering/svg/RenderSVGShape.h:
* Source/WebCore/rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::repaintRectInLocalCoordinates const):
* Source/WebCore/rendering/svg/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::SVGInlineTextBox):
(WebCore::SVGInlineTextBox::paintSelectionBackground):
(WebCore::SVGInlineTextBox::paint):
(WebCore::SVGInlineTextBox::acquirePaintingResource):
(WebCore::SVGInlineTextBox::releasePaintingResource):
(WebCore::SVGInlineTextBox::acquireLegacyPaintingResource):
(WebCore::SVGInlineTextBox::releaseLegacyPaintingResource):
(WebCore::SVGInlineTextBox::paintDecorationWithStyle):
(WebCore::SVGInlineTextBox::paintTextWithShadows):
(WebCore::SVGInlineTextBox::prepareGraphicsContextForTextPainting): Deleted.
(WebCore::SVGInlineTextBox::restoreGraphicsContextAfterTextPainting): Deleted.
* Source/WebCore/rendering/svg/SVGInlineTextBox.h:
* Source/WebCore/rendering/svg/SVGPaintServerHandling.h: Added.
(WebCore::SVGPaintServerHandling::SVGPaintServerHandling):
(WebCore::SVGPaintServerHandling::context const):
(WebCore::SVGPaintServerHandling::preparePaintOperation const):
(WebCore::SVGPaintServerHandling::requestPaintServer):
(WebCore::SVGPaintServerHandling::prepareFillOperation const):
(WebCore::SVGPaintServerHandling::prepareStrokeOperation const):
(WebCore::SVGPaintServerHandling::resolveColorFromStyle):
(WebCore::SVGPaintServerHandling::inheritColorFromParentStyleIfNeeded):
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceLinearGradient.cpp:
(WebCore::LegacyRenderSVGResourceLinearGradient::LegacyRenderSVGResourceLinearGradient):
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceRadialGradient.cpp:
(WebCore::LegacyRenderSVGResourceRadialGradient::LegacyRenderSVGResourceRadialGradient):
* Source/WebCore/svg/SVGElement.cpp:
(WebCore::isSVGLayerAwareElement):
* Source/WebCore/svg/SVGGradientElement.cpp:
(WebCore::SVGGradientElement::invalidateGradientResource):
(WebCore::SVGGradientElement::svgAttributeChanged):
(WebCore::SVGGradientElement::childrenChanged):
* Source/WebCore/svg/SVGGradientElement.h:
* Source/WebCore/svg/SVGLinearGradientElement.cpp:
(WebCore::SVGLinearGradientElement::svgAttributeChanged):
(WebCore::SVGLinearGradientElement::createElementRenderer):
* Source/WebCore/svg/SVGRadialGradientElement.cpp:
(WebCore::SVGRadialGradientElement::svgAttributeChanged):
(WebCore::SVGRadialGradientElement::createElementRenderer):

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




More information about the webkit-changes mailing list