Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: dd8b5e641c8aa32d1af442bd8a1eaf5141de7b2e
      
https://github.com/WebKit/WebKit/commit/dd8b5e641c8aa32d1af442bd8a1eaf5141de7b2e
  Author: Simon Fraser <simon.fra...@apple.com>
  Date:   2025-02-25 (Tue, 25 Feb 2025)

  Changed paths:
    M Source/WebCore/rendering/BackgroundPainter.cpp
    M Source/WebCore/rendering/BorderShape.cpp
    M Source/WebCore/rendering/BorderShape.h

  Log Message:
  -----------
  Use BorderShape for rendering inner box shadows
https://bugs.webkit.org/show_bug.cgi?id=288443
rdar://145532909

Reviewed by Antti Koivisto.

Inset box-shadow painting had some assumptions about shapes being rounded rects 
that get broken
with `corner-shape`, so migrate it to using BorderShape.

The code computes a new BorderShape where the outer rect is the border box, and 
the inner rect
represents the size of the shadow "hole" (i.e. the edge of the blurred area). 
It expands out
the non-present edges so that shadows on those edges get clipped out (this 
expanding used to
be done on the hole rect, but we can equivalently do it on the outer rect).

Finally we add BorderShape::fillRectWithRoundedHole() in preparation to later 
deal with
non-rounded-rect holes.

* Source/WebCore/rendering/BackgroundPainter.cpp:
(WebCore::BackgroundPainter::paintBoxShadow const):
(WebCore::areaCastingShadowInHole): Deleted.
* Source/WebCore/rendering/BorderShape.cpp:
(WebCore::BorderShape::move): Drive-by fix: if we move the outer rect, we need 
to move the cached inner rect.
(WebCore::BorderShape::inflate): Drive-by fix: if we inflate the outer rect, we 
need to recompute the inner rect.
(WebCore::BorderShape::fillRectWithInnerHoleShape const):
(WebCore::BorderShape::innerEdgeRect const): Deleted.
* Source/WebCore/rendering/BorderShape.h:
(WebCore::BorderShape::innerEdgeRect const):

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



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

Reply via email to