[webkit-changes] [WebKit/WebKit] 3afb34: Introduce BackgroundPainter

Antti Koivisto noreply at github.com
Wed Sep 7 07:10:23 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3afb34f466db6634ec6b7cea95b9cf6a735b43af
      https://github.com/WebKit/WebKit/commit/3afb34f466db6634ec6b7cea95b9cf6a735b43af
  Author: Antti Koivisto <antti at apple.com>
  Date:   2022-09-07 (Wed, 07 Sep 2022)

  Changed paths:
    M Source/WebCore/Sources.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/loader/cache/CachedImage.cpp
    M Source/WebCore/loader/cache/CachedImage.h
    A Source/WebCore/rendering/BackgroundPainter.cpp
    A Source/WebCore/rendering/BackgroundPainter.h
    A Source/WebCore/rendering/BorderPainter.cpp
    A Source/WebCore/rendering/BorderPainter.h
    R Source/WebCore/rendering/BoxModelPainter.cpp
    R Source/WebCore/rendering/BoxModelPainter.h
    M Source/WebCore/rendering/InlineBoxPainter.cpp
    M Source/WebCore/rendering/RenderBox.cpp
    M Source/WebCore/rendering/RenderBox.h
    M Source/WebCore/rendering/RenderBoxModelObject.cpp
    M Source/WebCore/rendering/RenderBoxModelObject.h
    M Source/WebCore/rendering/RenderElement.cpp
    M Source/WebCore/rendering/RenderInline.cpp
    M Source/WebCore/rendering/RenderMultiColumnSet.cpp
    M Source/WebCore/rendering/RenderReplaced.cpp
    M Source/WebCore/rendering/RenderTable.cpp
    M Source/WebCore/rendering/RenderTableCell.cpp
    M Source/WebCore/rendering/RenderTableSection.cpp
    M Source/WebCore/rendering/RenderWidget.cpp

  Log Message:
  -----------
  Introduce BackgroundPainter
https://bugs.webkit.org/show_bug.cgi?id=244884
<rdar://99644792>

Reviewed by Alan Bujtas.

Factor background code out of the RenderBoxModelObject.

Also rename BoxModelPainter -> BorderPainter. It is better to use more focused types.

* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/loader/cache/CachedImage.cpp:
(WebCore::CachedImage::isClientWaitingForAsyncDecoding const):
* Source/WebCore/loader/cache/CachedImage.h:
* Source/WebCore/rendering/BackgroundPainter.cpp: Added.
(WebCore::BackgroundPainter::BackgroundPainter):
(WebCore::applyBoxShadowForBackground):
(WebCore::BackgroundPainter::paintFillLayer):
(WebCore::BackgroundPainter::clipRoundedInnerRect):
(WebCore::BackgroundPainter::backgroundRoundedRectAdjustedForBleedAvoidance const):
(WebCore::BackgroundPainter::getBackgroundRoundedRect const):
(WebCore::BackgroundPainter::borderInnerRectAdjustedForBleedAvoidance const):
(WebCore::BackgroundPainter::document const):
(WebCore::BackgroundPainter::view const):
* Source/WebCore/rendering/BackgroundPainter.h: Added.
(WebCore::BackgroundPainter::paintFillLayer):
* Source/WebCore/rendering/BorderPainter.cpp: Renamed from Source/WebCore/rendering/BoxModelPainter.cpp.
(WebCore::BorderPainter::BorderPainter):
(WebCore::BorderPainter::allCornersClippedOut):
(WebCore::calculateSideRect):
(WebCore::shrinkRectByOneDevicePixel):
(WebCore::BorderPainter::paintBorder):
(WebCore::BorderPainter::paintNinePieceImage):
(WebCore::BorderPainter::paintTranslucentBorderSides):
(WebCore::borderWillArcInnerEdge):
(WebCore::styleRequiresClipPolygon):
(WebCore::borderStyleFillsBorderArea):
(WebCore::borderStyleHasInnerDetail):
(WebCore::borderStyleIsDottedOrDashed):
(WebCore::borderStyleHasUnmatchedColorsAtCorner):
(WebCore::colorsMatchAtCorner):
(WebCore::colorNeedsAntiAliasAtCorner):
(WebCore::willBeOverdrawn):
(WebCore::borderStylesRequireMitre):
(WebCore::joinRequiresMitre):
(WebCore::calculateAdjustedInnerBorder):
(WebCore::BorderPainter::paintBorderSides):
(WebCore::BorderPainter::paintOneBorderSide):
(WebCore::BorderPainter::drawBoxSideFromPath):
(WebCore::BorderPainter::clipBorderSidePolygon):
(WebCore::BorderPainter::borderInnerRectAdjustedForBleedAvoidance const):
(WebCore::BorderPainter::shouldAntialiasLines):
(WebCore::BorderPainter::calculateBorderStyleColor):
(WebCore::BorderPainter::document const):
* Source/WebCore/rendering/BorderPainter.h: Renamed from Source/WebCore/rendering/BoxModelPainter.h.
* Source/WebCore/rendering/InlineBoxPainter.cpp:
(WebCore::InlineBoxPainter::paintMask):
(WebCore::InlineBoxPainter::paintDecorations):
(WebCore::InlineBoxPainter::paintFillLayer):
* Source/WebCore/rendering/RenderBox.cpp:
(WebCore::RenderBox::paintBoxDecorations):
(WebCore::RenderBox::paintMaskImages):
(WebCore::RenderBox::paintFillLayers):
(WebCore::RenderBox::paintFillLayer): Deleted.
* Source/WebCore/rendering/RenderBox.h:
* Source/WebCore/rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::chooseInterpolationQuality const):
(WebCore::RenderBoxModelObject::calculateFillTileSize const):
(WebCore::resolveEdgeRelativeLength):
(WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry const):
(WebCore::RenderBoxModelObject::paintBoxShadow):
(WebCore::RenderBoxModelObject::getBackgroundRoundedRect const): Deleted.
(WebCore::RenderBoxModelObject::clipRoundedInnerRect): Deleted.
(WebCore::shrinkRectByOneDevicePixel): Deleted.
(WebCore::RenderBoxModelObject::backgroundRoundedRectAdjustedForBleedAvoidance const): Deleted.
(WebCore::applyBoxShadowForBackground): Deleted.
(WebCore::RenderBoxModelObject::chooseInterpolationQuality): Deleted.
(WebCore::RenderBoxModelObject::paintFillLayerExtended): Deleted.
* Source/WebCore/rendering/RenderBoxModelObject.h:
(WebCore::RenderBoxModelObject::paintFillLayerExtended): Deleted.
* Source/WebCore/rendering/RenderElement.cpp:
(WebCore::RenderElement::drawLineForBoxSide const):
* Source/WebCore/rendering/RenderInline.cpp:
(WebCore::RenderInline::paintOutlineForLine):
* Source/WebCore/rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::paintColumnRules):
* Source/WebCore/rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::paint):
* Source/WebCore/rendering/RenderTable.cpp:
(WebCore::RenderTable::paintBoxDecorations):
* Source/WebCore/rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::paintCollapsedBorders):
(WebCore::RenderTableCell::paintBoxDecorations):
* Source/WebCore/rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::paintRowGroupBorderIfRequired):
* Source/WebCore/rendering/RenderWidget.cpp:
(WebCore::RenderWidget::paint):

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




More information about the webkit-changes mailing list