Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0cb414c8ee44853f705400dad8e1a9ae7de8cb7f
      
https://github.com/WebKit/WebKit/commit/0cb414c8ee44853f705400dad8e1a9ae7de8cb7f
  Author: Simon Fraser <[email protected]>
  Date:   2024-09-16 (Mon, 16 Sep 2024)

  Changed paths:
    M LayoutTests/fast/box-shadow/box-shadow-with-zero-radius.html
    M Source/WebCore/platform/graphics/RoundedRect.cpp
    M Source/WebCore/platform/graphics/RoundedRect.h
    M Source/WebCore/rendering/BackgroundPainter.cpp
    M Source/WebCore/rendering/BorderShape.cpp
    M Source/WebCore/rendering/BorderShape.h

  Log Message:
  -----------
  Use BorderShape to render outset box-shadows
https://bugs.webkit.org/show_bug.cgi?id=278626
rdar://134654586

Reviewed by Antti Koivisto.

Adopt BorderShape in `BackgroundPainter::paintBoxShadow()` for outset shadows.

Since BorderShape knows about inside and outside shapes, we create one for both 
inset
and outset shadows, then later fill the inner or outer shape as appropriate.

Add `BorderShape::inflate()` which is needed by shadow code.

* LayoutTests/fast/box-shadow/box-shadow-with-zero-radius.html:
* Source/WebCore/platform/graphics/RoundedRect.cpp:
(WebCore::RoundedRect::Radii::expand):
(WebCore::RoundedRect::inflateWithRadii):
(WebCore::RoundedRect::RoundedRect):
* Source/WebCore/platform/graphics/RoundedRect.h:
(WebCore::RoundedRectRadii::expand):
(WebCore::RoundedRectRadii::shrink):
(WebCore::RoundedRect::inflate): Ensure we don't shrink below zero with 
negative amounts.
(WebCore::RoundedRect::expandRadii):
(WebCore::RoundedRect::shrinkRadii):
* Source/WebCore/rendering/BackgroundPainter.cpp:
(WebCore::BackgroundPainter::paintBoxShadow const):
* Source/WebCore/rendering/BorderShape.cpp:
(WebCore::BorderShape::outerShapeContains const):
(WebCore::BorderShape::move):
(WebCore::BorderShape::inflate):
(WebCore::BorderShape::clipOutOuterShape): Don't clip out empty rects.
(WebCore::BorderShape::clipOutInnerShape): Don't clip out empty rects.
* Source/WebCore/rendering/BorderShape.h:
(WebCore::BorderShape::BorderShape):
(WebCore::BorderShape::borderRect const):
(WebCore::BorderShape::isEmpty const):

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



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

Reply via email to