[webkit-changes] [WebKit/WebKit] 843368: [CSS Shape function] Support blending
Simon Fraser
noreply at github.com
Tue Aug 6 14:03:52 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 843368984e0b7bcd4bcb91cf99c63f77741a98fa
https://github.com/WebKit/WebKit/commit/843368984e0b7bcd4bcb91cf99c63f77741a98fa
Author: Simon Fraser <simon.fraser at apple.com>
Date: 2024-08-06 (Tue, 06 Aug 2024)
Changed paths:
M LayoutTests/imported/w3c/web-platform-tests/css/css-masking/animations/clip-path-interpolation-shape-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/offset-path-interpolation-008-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/offset-path-interpolation-008.html
M Source/WebCore/rendering/style/BasicShapes.cpp
M Source/WebCore/rendering/style/BasicShapesShape.cpp
M Source/WebCore/rendering/style/BasicShapesShape.h
Log Message:
-----------
[CSS Shape function] Support blending
https://bugs.webkit.org/show_bug.cgi?id=277609
rdar://133244319
Reviewed by Antti Koivisto.
Implement the `blend()` function for `BasicShapeShape`, following the rules in [1] but without
the interpolation with the `path()` function [2].
This required making all the shape segment types copy-constructable and assignable
[1] https://drafts.csswg.org/css-shapes-2/#interpolating-shape
[2] https://github.com/w3c/csswg-drafts/issues/10694
* LayoutTests/imported/w3c/web-platform-tests/css/css-masking/animations/clip-path-interpolation-shape-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/offset-path-interpolation-008-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/motion/animation/offset-path-interpolation-008.html: "via" -> "using".
Fix this result:
test_interpolation({
property: 'offset-path',
from: 'shape(from 5% 5px, arc to 15% -15px of 10px 20px, arc by 15% -5px of 30px cw rotate 30deg large, arc to 25% 20px of 10px 5px small)',
to: 'shape(from 15% 15px, arc to 5% -25px of 20px 30px, arc by 25% -15px of 20px cw rotate 270deg small, arc to 25% 20px of 10px 5px small cw)'
},
where the 0.3 result should contain "cw" given the spec text "If an arc command has different <arc-sweep> between its starting and ending list,
then the interpolated result uses cw for any progress value between 0 and 1"
* Source/WebCore/rendering/style/BasicShapes.cpp:
(WebCore::BasicShapePolygon::blend const):
* Source/WebCore/rendering/style/BasicShapesShape.cpp:
(WebCore::BasicShapeShape::canBlend):
(WebCore::blendWithPreferredValue):
(WebCore::BasicShapeShape::blend):
(WebCore::BasicShapeShape::canBlend const):
(WebCore::BasicShapeShape::blend const):
* Source/WebCore/rendering/style/BasicShapesShape.h:
Canonical link: https://commits.webkit.org/281913@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list