Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: b21509bc0fbc78ae8f1684d7211d041fbfb92038
https://github.com/WebKit/WebKit/commit/b21509bc0fbc78ae8f1684d7211d041fbfb92038
Author: Yusuke Suzuki <[email protected]>
Date: 2023-10-05 (Thu, 05 Oct 2023)
Changed paths:
M Source/WebCore/rendering/RenderBox.h
M Source/WebCore/rendering/RenderObject.cpp
M Source/WebCore/rendering/RenderObject.h
M Source/WebCore/rendering/svg/RenderSVGBlock.cpp
M Source/WebCore/rendering/svg/RenderSVGContainer.h
M Source/WebCore/rendering/svg/RenderSVGForeignObject.h
M Source/WebCore/rendering/svg/RenderSVGGradientStop.h
M Source/WebCore/rendering/svg/RenderSVGImage.h
M Source/WebCore/rendering/svg/RenderSVGInline.cpp
M Source/WebCore/rendering/svg/RenderSVGInline.h
M Source/WebCore/rendering/svg/RenderSVGModelObject.cpp
M Source/WebCore/rendering/svg/RenderSVGRoot.h
M Source/WebCore/rendering/svg/RenderSVGShape.h
M Source/WebCore/rendering/svg/RenderSVGText.cpp
M Source/WebCore/rendering/svg/RenderSVGText.h
M Source/WebCore/rendering/svg/SVGRenderSupport.cpp
M Source/WebCore/rendering/svg/SVGRenderSupport.h
M Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp
M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGContainer.h
M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGForeignObject.h
M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGImage.h
M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGModelObject.cpp
M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGRoot.cpp
M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGRoot.h
M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGShape.h
Log Message:
-----------
[SVG] Add fast mode to repaintRectInLocalCoordinates
https://bugs.webkit.org/show_bug.cgi?id=262672
rdar://116499404
Reviewed by Said Abou-Hallawa.
This patch replaces repaintRectInLocalCoordinates calls with fast approximation
version stubs. They are no difference at this point,
but approximation version will get implementation in a subsequent change.
1. This patch adds Fast and Accurate mode to repaintRectInLocalCoordinates. And
replaces fastRepaintRectInLocalCoordinates with repaintRectInLocalCoordinates
Fast mode.
2. We use repaintRectInLocalCoordinates Accurate mode in checkEnclosure /
checkIntersection to keep the current behavior as is even after introducing
approximation.
2. We add visibleRectContextForRenderTreeAsText to continue using
repaintRectInLocalCoordinates Accurate mode for SVG RenderTreeAsText. This is
having an option
in VisibleRectContext and switch the calls based on this option.
* Source/WebCore/rendering/RenderObject.h:
(WebCore::RenderObject::absoluteClippedOverflowRectForRenderTreeAsText const):
(WebCore::RenderObject::visibleRectContextForRenderTreeAsText):
* Source/WebCore/rendering/svg/RenderSVGBlock.cpp:
(WebCore::RenderSVGBlock::clippedOverflowRect const):
* Source/WebCore/rendering/svg/RenderSVGInline.cpp:
(WebCore::RenderSVGInline::fastRepaintRectInLocalCoordinates const):
(WebCore::RenderSVGInline::clippedOverflowRect const):
* Source/WebCore/rendering/svg/RenderSVGInline.h:
* Source/WebCore/rendering/svg/RenderSVGModelObject.cpp:
(WebCore::RenderSVGModelObject::addFocusRingRects const):
(WebCore::RenderSVGModelObject::checkIntersection):
(WebCore::RenderSVGModelObject::checkEnclosure):
* Source/WebCore/rendering/svg/RenderSVGResourceGradient.cpp:
(WebCore::createMaskAndSwapContextForTextGradient):
(WebCore::clipToTextMask):
* Source/WebCore/rendering/svg/RenderSVGResourceMarker.cpp:
(WebCore::RenderSVGResourceMarker::markerBoundaries const):
* Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp:
(WebCore::RenderSVGResourceMasker::applyResource):
(WebCore::RenderSVGResourceMasker::calculateMaskContentRepaintRect):
* Source/WebCore/rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::clippedOverflowRectForRepaint):
(WebCore::SVGRenderSupport::computeContainerBoundingBoxes):
* Source/WebCore/rendering/svg/SVGRenderSupport.h:
* Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp:
* Source/WebCore/rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::prepareToRenderSVGContent):
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGContainer.cpp:
(WebCore::LegacyRenderSVGContainer::addFocusRingRects const):
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGImage.cpp:
(WebCore::LegacyRenderSVGImage::paint):
(WebCore::LegacyRenderSVGImage::addFocusRingRects const):
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGModelObject.cpp:
(WebCore::LegacyRenderSVGModelObject::clippedOverflowRect const):
(WebCore::LegacyRenderSVGModelObject::outlineBoundsForRepaint const):
(WebCore::LegacyRenderSVGModelObject::absoluteFocusRingQuads):
(WebCore::LegacyRenderSVGModelObject::checkIntersection):
(WebCore::LegacyRenderSVGModelObject::checkEnclosure):
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceClipper.cpp:
(WebCore::LegacyRenderSVGResourceClipper::applyResource):
(WebCore::LegacyRenderSVGResourceClipper::calculateClipContentRepaintRect):
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGRoot.cpp:
(WebCore::LegacyRenderSVGRoot::layout):
(WebCore::LegacyRenderSVGRoot::clippedOverflowRect const):
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGShape.cpp:
(WebCore::LegacyRenderSVGShape::paint):
(WebCore::LegacyRenderSVGShape::addFocusRingRects const):
* Source/WebCore/svg/SVGFEImageElement.cpp:
(WebCore::SVGFEImageElement::imageBufferForEffect const):
Canonical link: https://commits.webkit.org/268940@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes