[webkit-changes] [WebKit/WebKit] f90cae: [GPU Process] Create a platform path only when it ...

Said Abou-Hallawa noreply at github.com
Tue Jun 27 17:17:05 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: f90cae5f62c3bd741bab5863887123b660e9cda6
      https://github.com/WebKit/WebKit/commit/f90cae5f62c3bd741bab5863887123b660e9cda6
  Author: Said Abou-Hallawa <said at apple.com>
  Date:   2023-06-27 (Tue, 27 Jun 2023)

  Changed paths:
    M LayoutTests/platform/glib/TestExpectations
    M LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.isPointInPath.basic-expected.txt
    M LayoutTests/platform/glib/imported/w3c/web-platform-tests/svg/import/animate-elem-35-t-manual-expected.txt
    M LayoutTests/platform/glib/imported/w3c/web-platform-tests/svg/import/paths-data-03-f-manual-expected.txt
    M LayoutTests/platform/glib/imported/w3c/web-platform-tests/svg/import/shapes-intro-02-f-manual-expected.txt
    M LayoutTests/platform/glib/imported/w3c/web-platform-tests/svg/painting/reftests/paint-order-001-expected.txt
    M LayoutTests/platform/glib/svg/custom/massive-coordinates-expected.txt
    M LayoutTests/platform/glib/svg/hixie/perf/001-expected.txt
    M LayoutTests/platform/glib/svg/hixie/perf/002-expected.txt
    M LayoutTests/platform/gtk/imported/w3c/web-platform-tests/svg/import/filters-morph-01-f-manual-expected.txt
    M LayoutTests/platform/gtk/svg/W3C-SVG-1.1/filters-morph-01-f-expected.txt
    M LayoutTests/platform/ios/svg/W3C-SVG-1.1/paths-data-02-t-expected.txt
    M LayoutTests/platform/ios/svg/batik/text/longTextOnPath-expected.txt
    M LayoutTests/platform/mac/TestExpectations
    M LayoutTests/platform/mac/svg/W3C-SVG-1.1/paths-data-02-t-expected.txt
    M LayoutTests/platform/mac/svg/batik/text/longTextOnPath-expected.txt
    M LayoutTests/platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-morph-01-f-manual-expected.txt
    M LayoutTests/platform/wpe/imported/w3c/web-platform-tests/svg/import/text-path-01-b-manual-expected.txt
    M LayoutTests/platform/wpe/imported/w3c/web-platform-tests/svg/import/text-path-02-b-manual-expected.txt
    M LayoutTests/platform/wpe/svg/W3C-SVG-1.1/filters-morph-01-f-expected.txt
    M LayoutTests/platform/wpe/svg/W3C-SVG-1.1/paths-data-03-f-expected.txt
    M LayoutTests/svg/W3C-SVG-1.1/paths-data-03-f-expected.txt
    M Source/WebCore/Headers.cmake
    M Source/WebCore/PAL/pal/spi/cg/CoreGraphicsSPI.h
    M Source/WebCore/Sources.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm
    M Source/WebCore/display/css/DisplayBoxDecorationPainter.cpp
    M Source/WebCore/html/HTMLAreaElement.cpp
    M Source/WebCore/html/canvas/CanvasPath.cpp
    M Source/WebCore/inspector/InspectorOverlay.cpp
    M Source/WebCore/platform/adwaita/ThemeAdwaita.cpp
    M Source/WebCore/platform/graphics/FloatRect.cpp
    M Source/WebCore/platform/graphics/FloatRect.h
    M Source/WebCore/platform/graphics/FloatRoundedRect.cpp
    M Source/WebCore/platform/graphics/FloatRoundedRect.h
    M Source/WebCore/platform/graphics/FontCascade.cpp
    M Source/WebCore/platform/graphics/GraphicsContext.cpp
    M Source/WebCore/platform/graphics/GraphicsContextState.cpp
    M Source/WebCore/platform/graphics/GraphicsContextState.h
    R Source/WebCore/platform/graphics/InlinePathData.h
    M Source/WebCore/platform/graphics/Path.cpp
    M Source/WebCore/platform/graphics/Path.h
    A Source/WebCore/platform/graphics/PathElement.h
    A Source/WebCore/platform/graphics/PathImpl.cpp
    A Source/WebCore/platform/graphics/PathImpl.h
    A Source/WebCore/platform/graphics/PathSegment.cpp
    A Source/WebCore/platform/graphics/PathSegment.h
    A Source/WebCore/platform/graphics/PathSegmentData.cpp
    A Source/WebCore/platform/graphics/PathSegmentData.h
    A Source/WebCore/platform/graphics/PathStream.cpp
    A Source/WebCore/platform/graphics/PathStream.h
    A Source/WebCore/platform/graphics/PlatformPath.h
    A Source/WebCore/platform/graphics/PlatformPathImpl.h
    A Source/WebCore/platform/graphics/RotationDirection.cpp
    A Source/WebCore/platform/graphics/RotationDirection.h
    M Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm
    M Source/WebCore/platform/graphics/cairo/CairoOperations.cpp
    M Source/WebCore/platform/graphics/cairo/CairoUtilities.cpp
    M Source/WebCore/platform/graphics/cairo/FontCairo.cpp
    M Source/WebCore/platform/graphics/cairo/PathCairo.cpp
    A Source/WebCore/platform/graphics/cairo/PathCairo.h
    M Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp
    M Source/WebCore/platform/graphics/cg/PathCG.cpp
    A Source/WebCore/platform/graphics/cg/PathCG.h
    M Source/WebCore/platform/graphics/cocoa/GraphicsContextCocoa.mm
    M Source/WebCore/platform/graphics/coretext/FontCoreText.cpp
    M Source/WebCore/platform/graphics/displaylists/DisplayList.cpp
    M Source/WebCore/platform/graphics/displaylists/DisplayListItemBuffer.cpp
    M Source/WebCore/platform/graphics/displaylists/DisplayListItemType.cpp
    M Source/WebCore/platform/graphics/displaylists/DisplayListItemType.h
    M Source/WebCore/platform/graphics/displaylists/DisplayListItems.cpp
    M Source/WebCore/platform/graphics/displaylists/DisplayListItems.h
    M Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp
    M Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h
    M Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.cpp
    M Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.h
    M Source/WebCore/platform/graphics/mac/controls/MenuListButtonMac.mm
    M Source/WebCore/platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp
    M Source/WebCore/platform/mock/MockRealtimeVideoSource.cpp
    M Source/WebCore/platform/network/cf/DNSResolveQueueCFNet.cpp
    M Source/WebCore/rendering/BorderPainter.cpp
    M Source/WebCore/rendering/GlyphDisplayListCache.cpp
    M Source/WebCore/rendering/PathOperation.cpp
    M Source/WebCore/rendering/RenderImage.cpp
    M Source/WebCore/rendering/RenderThemeAdwaita.cpp
    M Source/WebCore/rendering/RenderThemeIOS.mm
    M Source/WebCore/rendering/TextBoxPainter.cpp
    M Source/WebCore/rendering/TextPainter.cpp
    M Source/WebCore/rendering/TextPainter.h
    M Source/WebCore/rendering/mathml/RenderMathMLMenclose.cpp
    M Source/WebCore/rendering/shapes/BoxShape.cpp
    M Source/WebCore/rendering/shapes/RectangleShape.cpp
    M Source/WebCore/rendering/style/BasicShapes.cpp
    M Source/WebCore/rendering/svg/LegacyRenderSVGPath.cpp
    M Source/WebCore/rendering/svg/LegacyRenderSVGShape.cpp
    M Source/WebCore/rendering/svg/RenderSVGPath.cpp
    M Source/WebCore/rendering/svg/RenderSVGShape.cpp
    M Source/WebCore/rendering/svg/SVGPathData.cpp
    M Source/WebCore/svg/SVGPathUtilities.cpp
    M Source/WebCore/testing/Internals.cpp
    M Source/WebKit/CMakeLists.txt
    M Source/WebKit/DerivedSources-input.xcfilelist
    M Source/WebKit/DerivedSources.make
    R Source/WebKit/GPUProcess/graphics/InlinePathData.serialization.in
    A Source/WebKit/GPUProcess/graphics/PathSegment.serialization.in
    M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp
    M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h
    M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.messages.in
    M Source/WebKit/Scripts/webkit/messages.py
    M Source/WebKit/Shared/WebCoreArgumentCoders.cpp
    M Source/WebKit/Shared/WebCoreArgumentCoders.h
    M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
    M Source/WebKit/UIProcess/ios/DragDropInteractionState.mm
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h
    M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.mm
    M Tools/TestWebKitAPI/Tests/WebCore/DisplayListTests.cpp
    M Tools/TestWebKitAPI/Tests/WebCore/FloatRectTests.cpp

  Log Message:
  -----------
  [GPU Process] Create a platform path only when it is needed
https://bugs.webkit.org/show_bug.cgi?id=255898
rdar://108480395

Reviewed by Cameron McCormack.

We should avoid creating the platform path in the WebProcess. For this purpose
a new class called PathStream is created. It is a superclass of PathImpl which
is the base class of the platform path (PathCG and PathCairo). Path now owns a
unique_ptr<PathImpl> which can be converted from PathStream to PathCG and vice
versa.

Path will delegate all the calls to PathImpl. PathStream will implement most of
the functions the Path needs for layout. But for drawing and complicated queries,
PathStream will be converted to either PathCG or PathCairo.

* LayoutTests/platform/glib/TestExpectations:
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.isPointInPath.basic-expected.txt:
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/svg/import/animate-elem-35-t-manual-expected.txt:
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/svg/import/paths-data-03-f-manual-expected.txt:
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/svg/import/shapes-intro-02-f-manual-expected.txt:
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/svg/painting/reftests/paint-order-001-expected.txt:
* LayoutTests/platform/glib/svg/custom/massive-coordinates-expected.txt:
* LayoutTests/platform/glib/svg/hixie/perf/001-expected.txt:
* LayoutTests/platform/glib/svg/hixie/perf/002-expected.txt:
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/svg/import/filters-morph-01-f-manual-expected.txt:
* LayoutTests/platform/gtk/svg/W3C-SVG-1.1/filters-morph-01-f-expected.txt:
* LayoutTests/platform/ios/svg/W3C-SVG-1.1/paths-data-02-t-expected.txt:
* LayoutTests/platform/ios/svg/batik/text/longTextOnPath-expected.txt:
* LayoutTests/platform/mac/TestExpectations:
* LayoutTests/platform/mac/svg/W3C-SVG-1.1/paths-data-02-t-expected.txt:
* LayoutTests/platform/mac/svg/batik/text/longTextOnPath-expected.txt:
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-morph-01-f-manual-expected.txt:
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/svg/import/text-path-01-b-manual-expected.txt:
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/svg/import/text-path-02-b-manual-expected.txt:
* LayoutTests/platform/wpe/svg/W3C-SVG-1.1/filters-morph-01-f-expected.txt:
* LayoutTests/platform/wpe/svg/W3C-SVG-1.1/paths-data-03-f-expected.txt:
* LayoutTests/svg/W3C-SVG-1.1/paths-data-03-f-expected.txt:
* Source/WebCore/Headers.cmake:
* Source/WebCore/PAL/pal/spi/cg/CoreGraphicsSPI.h:
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
(-[WebAccessibilityObjectWrapperBase convertPathToScreenSpace:]):
* Source/WebCore/display/css/DisplayBoxDecorationPainter.cpp:
(WebCore::Display::BorderPainter::clipBorderSidePolygon const):
(WebCore::Display::BorderPainter::drawLineForBoxSide const):
* Source/WebCore/html/HTMLAreaElement.cpp:
(WebCore::HTMLAreaElement::getRegion const):
* Source/WebCore/html/canvas/CanvasPath.cpp:
(WebCore::CanvasPath::lineTo):
(WebCore::CanvasPath::quadraticCurveTo):
(WebCore::CanvasPath::bezierCurveTo):
(WebCore::CanvasPath::arcTo):
(WebCore::CanvasPath::arc):
(WebCore::CanvasPath::ellipse):
* Source/WebCore/inspector/InspectorOverlay.cpp:
(WebCore::drawShapeHighlight):
* Source/WebCore/platform/adwaita/ThemeAdwaita.cpp:
(WebCore::ThemeAdwaita::paintRadio):
* Source/WebCore/platform/graphics/FloatRect.cpp:
(WebCore::FloatRect::fitToPoints): Deleted.
* Source/WebCore/platform/graphics/FloatRect.h:
(WebCore::FloatRect::smallestRect):
(WebCore::FloatRect::isSmallest const):
* Source/WebCore/platform/graphics/FloatRoundedRect.cpp:
(WebCore::FloatRoundedRect::Radii::hasEvenCorners const):
(WebCore::FloatRoundedRect::Radii::isUniformCornerRadius const):
* Source/WebCore/platform/graphics/FloatRoundedRect.h:
* Source/WebCore/platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::dashesForIntersectionsWithRect const):
* Source/WebCore/platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::fillEllipseAsPath):
(WebCore::GraphicsContext::strokeEllipseAsPath):
* Source/WebCore/platform/graphics/GraphicsContextState.cpp:
(WebCore::GraphicsContextState::containsOnlyInlineStrokeChanges const):
* Source/WebCore/platform/graphics/GraphicsContextState.h:
* Source/WebCore/platform/graphics/Path.cpp:
(WebCore::Path::Path):
(WebCore::Path::operator=):
(WebCore::Path::operator== const):
(WebCore::Path::ensurePlatformPathImpl):
(WebCore::Path::polygonPathFromPoints):
(WebCore::Path::moveTo):
(WebCore::Path::addLineTo):
(WebCore::Path::addQuadCurveTo):
(WebCore::Path::addBezierCurveTo):
(WebCore::Path::addArcTo):
(WebCore::Path::addArc):
(WebCore::Path::addEllipse):
(WebCore::Path::addEllipseInRect):
(WebCore::Path::addRect):
(WebCore::calculateEvenRoundedRect):
(WebCore::Path::addRoundedRect):
(WebCore::Path::closeSubpath):
(WebCore::Path::addPath):
(WebCore::Path::applySegments const):
(WebCore::Path::applyElements const):
(WebCore::Path::clear):
(WebCore::Path::translate):
(WebCore::Path::transform):
(WebCore::Path::singleSegment const):
(WebCore::Path::singleDataLine const):
(WebCore::Path::singleArc const):
(WebCore::Path::singleQuadCurve const):
(WebCore::Path::singleBezierCurve const):
(WebCore::Path::isEmpty const):
(WebCore::Path::platformPath const):
(WebCore::Path::segmentsIfExists const):
(WebCore::Path::segments const):
(WebCore::Path::length const):
(WebCore::Path::isClosed const):
(WebCore::Path::currentPoint const):
(WebCore::Path::traversalStateAtLength const):
(WebCore::Path::pointAtLength const):
(WebCore::Path::contains const):
(WebCore::Path::strokeContains const):
(WebCore::Path::fastBoundingRect const):
(WebCore::Path::boundingRect const):
(WebCore::Path::strokeBoundingRect const):
(WebCore::operator<<):
(WebCore::Path::elementCountSlowCase const): Deleted.
(WebCore::Path::addBeziersForRoundedRect): Deleted.
(WebCore::Path::apply const): Deleted.
(WebCore::Path::hasCurrentPoint const): Deleted.
(WebCore::Path::elementCount const): Deleted.
(WebCore::Path::fastBoundingRectFromInlineData const): Deleted.
(WebCore::computeArcBounds): Deleted.
(WebCore::Path::boundingRectFromInlineData const): Deleted.
(WebCore::Path::dump const): Deleted.
* Source/WebCore/platform/graphics/Path.h:
(WebCore::Path::circleControlPoint):
(WebCore::Path::strokeBoundingRect):
(WebCore::Path::from): Deleted.
(WebCore::Path::cairoPath const): Deleted.
(WebCore::Path::platformPath const): Deleted.
(WebCore::Path::inlineData const): Deleted.
(): Deleted.
(WebCore::Path::encode const): Deleted.
(WebCore::Path::decode): Deleted.
(WebCore::Path::hasInlineData const): Deleted.
(WebCore::Path::inlineData): Deleted.
* Source/WebCore/platform/graphics/PathElement.h: Added.
* Source/WebCore/platform/graphics/PathImpl.cpp: Added.
(WebCore::PathImpl::appendSegment):
(WebCore::PathImpl::addLinesForRect):
(WebCore::PathImpl::addBeziersForRoundedRect):
(WebCore::PathImpl::isClosed const):
* Source/WebCore/platform/graphics/PathImpl.h: Added.
(WebCore::PathImpl::circleControlPoint):
(WebCore::PathImpl::isPathStream const):
(WebCore::PathImpl::singleSegment const):
(WebCore::PathImpl::singleDataLine const):
(WebCore::PathImpl::singleArc const):
(WebCore::PathImpl::singleQuadCurve const):
(WebCore::PathImpl::singleBezierCurve const):
* Source/WebCore/platform/graphics/PathSegment.cpp: Added.
(WebCore::PathSegment::PathSegment):
(WebCore::PathSegment::calculateEndPoint const):
(WebCore::PathSegment::extendFastBoundingRect const):
(WebCore::PathSegment::extendBoundingRect const):
(WebCore::PathSegment::addToImpl const):
(WebCore::PathSegment::applyElements const):
(WebCore::operator<<):
* Source/WebCore/platform/graphics/PathSegment.h: Added.
(WebCore::PathSegment::data const):
(WebCore::PathSegment::isCloseSubPath const):
* Source/WebCore/platform/graphics/PathSegmentData.cpp: Added.
(WebCore::PathMoveTo::calculateEndPoint const):
(WebCore::PathMoveTo::extendFastBoundingRect const):
(WebCore::PathMoveTo::extendBoundingRect const):
(WebCore::PathMoveTo::addToImpl const):
(WebCore::PathMoveTo::applyElements const):
(WebCore::operator<<):
(WebCore::PathLineTo::calculateEndPoint const):
(WebCore::PathLineTo::extendFastBoundingRect const):
(WebCore::PathLineTo::extendBoundingRect const):
(WebCore::PathLineTo::addToImpl const):
(WebCore::PathLineTo::applyElements const):
(WebCore::PathQuadCurveTo::calculateEndPoint const):
(WebCore::PathQuadCurveTo::extendFastBoundingRect const):
(WebCore::calculateQuadratic):
(WebCore::calculateQuadraticExtremity):
(WebCore::PathQuadCurveTo::extendBoundingRect const):
(WebCore::PathQuadCurveTo::addToImpl const):
(WebCore::PathQuadCurveTo::applyElements const):
(WebCore::PathBezierCurveTo::calculateEndPoint const):
(WebCore::PathBezierCurveTo::extendFastBoundingRect const):
(WebCore::calculateBezier):
(WebCore::calculateBezierExtremities):
(WebCore::PathBezierCurveTo::extendBoundingRect const):
(WebCore::PathBezierCurveTo::addToImpl const):
(WebCore::PathBezierCurveTo::applyElements const):
(WebCore::angleOfLine):
(WebCore::PathArcTo::calculateEndPoint const):
(WebCore::PathArcTo::extendFastBoundingRect const):
(WebCore::PathArcTo::extendBoundingRect const):
(WebCore::PathArcTo::addToImpl const):
(WebCore::PathArc::calculateEndPoint const):
(WebCore::PathArc::extendFastBoundingRect const):
(WebCore::angleInClockwise):
(WebCore::PathArc::extendBoundingRect const):
(WebCore::PathArc::addToImpl const):
(WebCore::PathEllipse::calculateEndPoint const):
(WebCore::PathEllipse::extendFastBoundingRect const):
(WebCore::PathEllipse::extendBoundingRect const):
(WebCore::PathEllipse::addToImpl const):
(WebCore::PathEllipseInRect::calculateEndPoint const):
(WebCore::PathEllipseInRect::extendFastBoundingRect const):
(WebCore::PathEllipseInRect::extendBoundingRect const):
(WebCore::PathEllipseInRect::addToImpl const):
(WebCore::PathRect::calculateEndPoint const):
(WebCore::PathRect::extendFastBoundingRect const):
(WebCore::PathRect::extendBoundingRect const):
(WebCore::PathRect::addToImpl const):
(WebCore::PathRoundedRect::calculateEndPoint const):
(WebCore::PathRoundedRect::extendFastBoundingRect const):
(WebCore::PathRoundedRect::extendBoundingRect const):
(WebCore::PathRoundedRect::addToImpl const):
(WebCore::DataType2>::calculateEndPoint const):
(WebCore::DataType2>::extendFastBoundingRect const):
(WebCore::DataType2>::extendBoundingRect const):
(WebCore::DataType2>::addToImpl const):
(WebCore::DataType2>::applyElements const):
* Source/WebCore/platform/graphics/PathSegmentData.h: Added.
(WebCore::PathArcTo::applyElements const):
(WebCore::PathArc::applyElements const):
(WebCore::PathEllipse::applyElements const):
(WebCore::PathEllipseInRect::applyElements const):
(WebCore::PathRect::applyElements const):
(WebCore::PathRoundedRect::applyElements const):
(WebCore::operator<<):
* Source/WebCore/platform/graphics/PathStream.cpp: Added.
(WebCore::PathStream::create):
(WebCore::PathStream::PathStream):
(WebCore::PathStream::clone const):
(WebCore::PathStream::operator== const):
(WebCore::PathStream::mergeIntoComposite):
(WebCore::PathStream::moveTo):
(WebCore::PathStream::addLineTo):
(WebCore::PathStream::addQuadCurveTo):
(WebCore::PathStream::addBezierCurveTo):
(WebCore::PathStream::addArcTo):
(WebCore::PathStream::addArc):
(WebCore::PathStream::addRect):
(WebCore::PathStream::addEllipse):
(WebCore::PathStream::addEllipseInRect):
(WebCore::PathStream::addRoundedRect):
(WebCore::PathStream::closeSubpath):
(WebCore::PathStream::segments const):
(WebCore::PathStream::applySegments const):
(WebCore::PathStream::applyElements const):
(WebCore::PathStream::singleSegment const):
(WebCore::PathStream::singleDataType const):
(WebCore::PathStream::singleDataLine const):
(WebCore::PathStream::singleArc const):
(WebCore::PathStream::singleQuadCurve const):
(WebCore::PathStream::singleBezierCurve const):
(WebCore::PathStream::isClosed const):
(WebCore::PathStream::currentPoint const):
(WebCore::PathStream::fastBoundingRect const):
(WebCore::PathStream::boundingRect const):
* Source/WebCore/platform/graphics/PathStream.h: Added.
(isType):
* Source/WebCore/platform/graphics/PlatformPath.h: Added.
* Source/WebCore/platform/graphics/PlatformPathImpl.h: Added.
* Source/WebCore/platform/graphics/RotationDirection.cpp: Renamed from Source/WebCore/platform/graphics/InlinePathData.h.
(WebCore::operator<<):
* Source/WebCore/platform/graphics/RotationDirection.h: Added.
* Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(WebCore::PlatformCALayerCocoa::shapePath const):
* Source/WebCore/platform/graphics/cairo/CairoOperations.cpp:
(WebCore::Cairo::fillRectWithRoundedHole):
(WebCore::Cairo::fillPath):
(WebCore::Cairo::strokePath):
(WebCore::Cairo::clipPath):
* Source/WebCore/platform/graphics/cairo/CairoUtilities.cpp:
(WebCore::appendWebCorePathToCairoContext):
* Source/WebCore/platform/graphics/cairo/FontCairo.cpp:
(WebCore::Font::platformPathForGlyph const):
* Source/WebCore/platform/graphics/cairo/PathCairo.cpp:
(WebCore::PathCairo::create):
(WebCore::PathCairo::PathCairo):
(WebCore::PathCairo::clone const):
(WebCore::PathCairo::platformPath const):
(WebCore::PathCairo::operator== const):
(WebCore::PathCairo::moveTo):
(WebCore::PathCairo::addLineTo):
(WebCore::PathCairo::addQuadCurveTo):
(WebCore::PathCairo::addBezierCurveTo):
(WebCore::PathCairo::addArcTo):
(WebCore::PathCairo::addArc):
(WebCore::PathCairo::addEllipse):
(WebCore::PathCairo::addEllipseInRect):
(WebCore::PathCairo::addRect):
(WebCore::PathCairo::addRoundedRect):
(WebCore::PathCairo::closeSubpath):
(WebCore::PathCairo::addPath):
(WebCore::PathCairo::applySegments const):
(WebCore::PathCairo::applyElements const):
(WebCore::PathCairo::isEmpty const):
(WebCore::PathCairo::currentPoint const):
(WebCore::PathCairo::transform):
(WebCore::PathCairo::contains const):
(WebCore::PathCairo::strokeContains const):
(WebCore::PathCairo::fastBoundingRect const):
(WebCore::PathCairo::boundingRect const):
(WebCore::PathCairo::strokeBoundingRect const):
(WebCore::Path::Path): Deleted.
(WebCore::Path::ensureCairoPath): Deleted.
(WebCore::Path::operator=): Deleted.
(WebCore::Path::clear): Deleted.
(WebCore::Path::isEmptySlowCase const): Deleted.
(WebCore::Path::currentPointSlowCase const): Deleted.
(WebCore::Path::translate): Deleted.
(WebCore::Path::appendElement): Deleted.
(WebCore::Path::moveToSlowCase): Deleted.
(WebCore::Path::addLineToSlowCase): Deleted.
(WebCore::Path::addRect): Deleted.
(WebCore::Path::addQuadCurveToSlowCase): Deleted.
(WebCore::Path::addBezierCurveToSlowCase): Deleted.
(WebCore::Path::addArcSlowCase): Deleted.
(WebCore::Path::addArcTo): Deleted.
(WebCore::Path::addEllipse): Deleted.
(WebCore::Path::addPath): Deleted.
(WebCore::Path::closeSubpath): Deleted.
(WebCore::Path::boundingRectSlowCase const): Deleted.
(WebCore::Path::strokeBoundingRect const): Deleted.
(WebCore::Path::contains const): Deleted.
(WebCore::Path::strokeContains const): Deleted.
(WebCore::Path::applyIgnoringInlineData const): Deleted.
(WebCore::Path::fastBoundingRectSlowCase const): Deleted.
(WebCore::Path::transform): Deleted.
(WebCore::Path::isNull const): Deleted.
* Source/WebCore/platform/graphics/cairo/PathCairo.h: Added.
(isType):
* Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContextCG::drawEllipse):
(WebCore::GraphicsContextCG::strokePath):
* Source/WebCore/platform/graphics/cg/PathCG.cpp:
(WebCore::PathCG::create):
(WebCore::PathCG::PathCG):
(WebCore::PathCG::clone const):
(WebCore::PathCG::platformPath const):
(WebCore::PathCG::ensureMutablePlatformPath):
(WebCore::PathCG::operator== const):
(WebCore::PathCG::moveTo):
(WebCore::PathCG::addLineTo):
(WebCore::PathCG::addQuadCurveTo):
(WebCore::PathCG::addBezierCurveTo):
(WebCore::PathCG::addArcTo):
(WebCore::PathCG::addArc):
(WebCore::PathCG::addEllipse):
(WebCore::PathCG::addEllipseInRect):
(WebCore::PathCG::addRect):
(WebCore::addEvenCornersRoundedRect):
(WebCore::addUnevenCornersRoundedRect):
(WebCore::PathCG::addRoundedRect):
(WebCore::PathCG::closeSubpath):
(WebCore::PathCG::addPath):
(WebCore::pathSegmentApplierCallback):
(WebCore::PathCG::applySegments const):
(WebCore::pathElementApplierCallback):
(WebCore::PathCG::applyElements const):
(WebCore::PathCG::isEmpty const):
(WebCore::PathCG::currentPoint const):
(WebCore::PathCG::transform):
(WebCore::PathCG::contains const):
(WebCore::putBytesNowhere):
(WebCore::createScratchContext):
(WebCore::scratchContext):
(WebCore::PathCG::strokeContains const):
(WebCore::PathCG::fastBoundingRect const):
(WebCore::PathCG::boundingRect const):
(WebCore::PathCG::strokeBoundingRect const):
(WebCore::Path::polygonPathFromPoints): Deleted.
(WebCore::Path::createCGPath const): Deleted.
(WebCore::Path::Path): Deleted.
(WebCore::Path::platformPath const): Deleted.
(WebCore::Path::ensurePlatformPath): Deleted.
(WebCore::Path::isNull const): Deleted.
(WebCore::m_copyPathBeforeMutation): Deleted.
(WebCore::Path::swap): Deleted.
(WebCore::Path::operator=): Deleted.
(WebCore::Path::contains const): Deleted.
(WebCore::Path::strokeContains const): Deleted.
(WebCore::Path::translate): Deleted.
(WebCore::Path::transform): Deleted.
(WebCore::Path::boundingRectSlowCase const): Deleted.
(WebCore::Path::fastBoundingRectSlowCase const): Deleted.
(WebCore::Path::strokeBoundingRect const): Deleted.
(WebCore::Path::moveToSlowCase): Deleted.
(WebCore::Path::addLineToSlowCase): Deleted.
(WebCore::Path::addQuadCurveToSlowCase): Deleted.
(WebCore::Path::addBezierCurveToSlowCase): Deleted.
(WebCore::Path::addArcTo): Deleted.
(WebCore::Path::platformAddPathForRoundedRect): Deleted.
(WebCore::Path::closeSubpath): Deleted.
(WebCore::Path::addArcSlowCase): Deleted.
(WebCore::Path::addRect): Deleted.
(WebCore::Path::addEllipse): Deleted.
(WebCore::Path::addPath): Deleted.
(WebCore::Path::clear): Deleted.
(WebCore::Path::isEmptySlowCase const): Deleted.
(WebCore::Path::currentPointSlowCase const): Deleted.
(WebCore::CGPathApplierToPathApplier): Deleted.
(WebCore::Path::applyIgnoringInlineData const): Deleted.
(WebCore::Path::elementCountSlowCase const): Deleted.
* Source/WebCore/platform/graphics/cg/PathCG.h: Added.
(isType):
* Source/WebCore/platform/graphics/cocoa/GraphicsContextCocoa.mm:
(WebCore::GraphicsContextCG::drawFocusRing):
* Source/WebCore/platform/graphics/coretext/FontCoreText.cpp:
(WebCore::Font::platformPathForGlyph const):
* Source/WebCore/platform/graphics/displaylists/DisplayList.cpp:
(WebCore::DisplayList::DisplayList::append):
* Source/WebCore/platform/graphics/displaylists/DisplayListItemBuffer.cpp:
(WebCore::DisplayList::ItemHandle::apply):
(WebCore::DisplayList::ItemHandle::destroy):
(WebCore::DisplayList::ItemHandle::safeCopy const):
* Source/WebCore/platform/graphics/displaylists/DisplayListItemType.cpp:
(WebCore::DisplayList::sizeOfItemInBytes):
(WebCore::DisplayList::isDrawingItem):
(WebCore::DisplayList::isInlineItem):
* Source/WebCore/platform/graphics/displaylists/DisplayListItemType.h:
* Source/WebCore/platform/graphics/displaylists/DisplayListItems.cpp:
(WebCore::DisplayList::FillPathSegment::apply const):
(WebCore::DisplayList::StrokePathSegment::apply const):
(WebCore::DisplayList::StrokeLine::apply const):
(WebCore::DisplayList::operator<<):
(WebCore::DisplayList::dumpItem):
(WebCore::DisplayList::dumpItemHandle):
* Source/WebCore/platform/graphics/displaylists/DisplayListItems.h:
(WebCore::DisplayList::FillLine::FillLine):
(WebCore::DisplayList::FillLine::path const):
(WebCore::DisplayList::FillArc::FillArc):
(WebCore::DisplayList::FillArc::path const):
(WebCore::DisplayList::FillQuadCurve::FillQuadCurve):
(WebCore::DisplayList::FillQuadCurve::path const):
(WebCore::DisplayList::FillBezierCurve::FillBezierCurve):
(WebCore::DisplayList::FillBezierCurve::path const):
(WebCore::DisplayList::FillPathSegment::FillPathSegment):
(WebCore::DisplayList::FillPathSegment::path const):
(WebCore::DisplayList::StrokeLine::StrokeLine):
(WebCore::DisplayList::StrokeArc::StrokeArc):
(WebCore::DisplayList::StrokeArc::path const):
(WebCore::DisplayList::StrokeQuadCurve::StrokeQuadCurve):
(WebCore::DisplayList::StrokeQuadCurve::path const):
(WebCore::DisplayList::StrokeBezierCurve::StrokeBezierCurve):
(WebCore::DisplayList::StrokeBezierCurve::path const):
(WebCore::DisplayList::StrokePathSegment::StrokePathSegment):
(WebCore::DisplayList::StrokePathSegment::path const):
* Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp:
(WebCore::DisplayList::Recorder::fillPath):
(WebCore::DisplayList::Recorder::strokePath):
* Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h:
* Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.cpp:
(WebCore::DisplayList::RecorderImpl::recordFillLine):
(WebCore::DisplayList::RecorderImpl::recordFillArc):
(WebCore::DisplayList::RecorderImpl::recordFillQuadCurve):
(WebCore::DisplayList::RecorderImpl::recordFillBezierCurve):
(WebCore::DisplayList::RecorderImpl::recordFillPathSegment):
(WebCore::DisplayList::RecorderImpl::recordStrokeLine):
(WebCore::DisplayList::RecorderImpl::recordStrokeLineWithColorAndThickness):
(WebCore::DisplayList::RecorderImpl::recordStrokeArc):
(WebCore::DisplayList::RecorderImpl::recordStrokeQuadCurve):
(WebCore::DisplayList::RecorderImpl::recordStrokeBezierCurve):
(WebCore::DisplayList::RecorderImpl::recordStrokePathSegment):
* Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.h:
* Source/WebCore/platform/graphics/mac/controls/MenuListButtonMac.mm:
(WebCore::MenuListButtonMac::draw):
* Source/WebCore/platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:
(Nicosia::CairoOperationRecorder::fillEllipse):
(Nicosia::CairoOperationRecorder::strokeEllipse):
* Source/WebCore/platform/mock/MockRealtimeVideoSource.cpp:
(WebCore::MockRealtimeVideoSource::drawAnimation):
* Source/WebCore/platform/network/cf/DNSResolveQueueCFNet.cpp:
* Source/WebCore/rendering/BorderPainter.cpp:
(WebCore::BorderPainter::clipBorderSidePolygon):
(WebCore::BorderPainter::drawLineForBoxSide):
* Source/WebCore/rendering/GlyphDisplayListCache.cpp:
(WebCore::canShareDisplayListWithItem):
* Source/WebCore/rendering/PathOperation.cpp:
(WebCore::RayPathOperation::getPath const):
* Source/WebCore/rendering/RenderImage.cpp:
(WebCore::RenderImage::paintReplaced):
* Source/WebCore/rendering/RenderThemeAdwaita.cpp:
(WebCore::RenderThemeAdwaita::paintSliderThumb):
* Source/WebCore/rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::paintMenuListButtonDecorations):
(WebCore::paintAttachmentProgress):
(WebCore::RenderThemeIOS::paintRadio):
(WebCore::RenderThemeIOS::paintMenuListButtonDecorationsWithFormControlRefresh):
* Source/WebCore/rendering/TextBoxPainter.cpp:
(WebCore::TextBoxPainter<TextBoxPath>::paint):
(WebCore::TextBoxPainter<TextBoxPath>::paintBackgroundDecorations):
(WebCore::TextBoxPainter<TextBoxPath>::paintForegroundDecorations):
* Source/WebCore/rendering/TextPainter.cpp:
(WebCore::TextPainter::paintTextAndEmphasisMarksIfNeeded):
* Source/WebCore/rendering/TextPainter.h:
(WebCore::rotation):
* Source/WebCore/rendering/mathml/RenderMathMLMenclose.cpp:
(WebCore::RenderMathMLMenclose::paint):
* Source/WebCore/rendering/shapes/BoxShape.cpp:
(WebCore::BoxShape::buildDisplayPaths const):
* Source/WebCore/rendering/shapes/RectangleShape.cpp:
(WebCore::RectangleShape::buildDisplayPaths const):
* Source/WebCore/rendering/style/BasicShapes.cpp:
(WebCore::EllipsePathPolicy::createValueForKey):
(WebCore::PolygonPathPolicy::createValueForKey):
* Source/WebCore/rendering/svg/LegacyRenderSVGPath.cpp:
(WebCore::LegacyRenderSVGPath::zeroLengthLinecapPath const):
(WebCore::LegacyRenderSVGPath::updateZeroLengthSubpaths):
* Source/WebCore/rendering/svg/LegacyRenderSVGShape.cpp:
(WebCore::LegacyRenderSVGShape::processMarkerPositions):
* Source/WebCore/rendering/svg/RenderSVGPath.cpp:
(WebCore::RenderSVGPath::zeroLengthLinecapPath const):
(WebCore::RenderSVGPath::updateZeroLengthSubpaths):
* Source/WebCore/rendering/svg/RenderSVGShape.cpp:
(WebCore::RenderSVGShape::processMarkerPositions):
* Source/WebCore/rendering/svg/SVGPathData.cpp:
(WebCore::pathFromCircleElement):
(WebCore::pathFromEllipseElement):
(WebCore::pathFromRectElement):
* Source/WebCore/svg/SVGPathUtilities.cpp:
(WebCore::buildStringFromPath):
* Source/WebCore/testing/Internals.cpp:
(WebCore::Internals::pathStringWithShrinkWrappedRects):
* Source/WebKit/CMakeLists.txt:
* Source/WebKit/DerivedSources-input.xcfilelist:
* Source/WebKit/DerivedSources.make:
* Source/WebKit/GPUProcess/graphics/InlinePathData.serialization.in: Removed.
* Source/WebKit/GPUProcess/graphics/PathSegment.serialization.in: Added.
* Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp:
(WebKit::RemoteDisplayListRecorder::fillLine):
(WebKit::RemoteDisplayListRecorder::fillArc):
(WebKit::RemoteDisplayListRecorder::fillQuadCurve):
(WebKit::RemoteDisplayListRecorder::fillBezierCurve):
(WebKit::RemoteDisplayListRecorder::fillPathSegment):
(WebKit::RemoteDisplayListRecorder::strokeLine):
(WebKit::RemoteDisplayListRecorder::strokeLineWithColorAndThickness):
(WebKit::RemoteDisplayListRecorder::strokeArc):
(WebKit::RemoteDisplayListRecorder::strokeQuadCurve):
(WebKit::RemoteDisplayListRecorder::strokeBezierCurve):
(WebKit::RemoteDisplayListRecorder::strokePathSegment):
* Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h:
* Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.messages.in:
* Source/WebKit/Scripts/webkit/messages.py:
(types_that_cannot_be_forward_declared):
(headers_for_type):
* Source/WebKit/Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<Path>::encode):
(IPC::ArgumentCoder<Path>::decode):
* Source/WebKit/Shared/WebCoreArgumentCoders.h:
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
* Source/WebKit/UIProcess/ios/DragDropInteractionState.mm:
(WebKit::DragDropInteractionState::previewForDragItem const):
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:
(WebKit::RemoteDisplayListRecorderProxy::recordFillLine):
(WebKit::RemoteDisplayListRecorderProxy::recordFillArc):
(WebKit::RemoteDisplayListRecorderProxy::recordFillQuadCurve):
(WebKit::RemoteDisplayListRecorderProxy::recordFillBezierCurve):
(WebKit::RemoteDisplayListRecorderProxy::recordFillPathSegment):
(WebKit::RemoteDisplayListRecorderProxy::recordStrokeLine):
(WebKit::RemoteDisplayListRecorderProxy::recordStrokeLineWithColorAndThickness):
(WebKit::RemoteDisplayListRecorderProxy::recordStrokeArc):
(WebKit::RemoteDisplayListRecorderProxy::recordStrokeQuadCurve):
(WebKit::RemoteDisplayListRecorderProxy::recordStrokeBezierCurve):
(WebKit::RemoteDisplayListRecorderProxy::recordStrokePathSegment):
* Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.mm:
(WebKit::PlatformCALayerRemote::updateClonedLayerProperties const):
* Tools/TestWebKitAPI/Tests/WebCore/DisplayListTests.cpp:
(TestWebKitAPI::TEST):
* Tools/TestWebKitAPI/Tests/WebCore/FloatRectTests.cpp:

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




More information about the webkit-changes mailing list