[webkit-changes] [WebKit/WebKit] 4f828a: Make FloatRect etc. constexpr and adopt nanRect to...
Yusuke Suzuki
noreply at github.com
Wed Oct 4 12:55:48 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 4f828afc3acd38e21721463eeb2b303d2cbb1be6
https://github.com/WebKit/WebKit/commit/4f828afc3acd38e21721463eeb2b303d2cbb1be6
Author: Yusuke Suzuki <ysuzuki at apple.com>
Date: 2023-10-04 (Wed, 04 Oct 2023)
Changed paths:
M Source/WebCore/platform/graphics/FloatPoint.h
M Source/WebCore/platform/graphics/FloatRect.h
M Source/WebCore/platform/graphics/FloatSize.cpp
M Source/WebCore/platform/graphics/FloatSize.h
M Tools/TestWebKitAPI/Tests/WebCore/FloatRectTests.cpp
M Tools/TestWebKitAPI/Tests/WebCore/cg/DisplayListTestsCG.cpp
Log Message:
-----------
Make FloatRect etc. constexpr and adopt nanRect to make it usable for "not-filled" FloatRect purpose
https://bugs.webkit.org/show_bug.cgi?id=262636
rdar://116476334
Reviewed by Justin Michaud and Mark Lam.
Use constexpr in FloatRect and related classes, and add `nanRect` concept to make it usable for "not-filled" FloatRect.
This is useful in subsequent SVG optimization instead of using `std::optional<FloatRect>`.
* Source/WebCore/platform/graphics/FloatPoint.h:
(WebCore::FloatPoint::FloatPoint):
(WebCore::FloatPoint::zero):
(WebCore::FloatPoint::isZero const):
(WebCore::FloatPoint::x const):
(WebCore::FloatPoint::y const):
(WebCore::FloatPoint::scaled const):
(WebCore::FloatPoint::dot const):
(WebCore::FloatPoint::lengthSquared const):
(WebCore::FloatPoint::shrunkTo const):
(WebCore::FloatPoint::expandedTo const):
(WebCore::FloatPoint::transposedPoint const):
(WebCore::operator+):
(WebCore::operator-):
(WebCore::operator*):
(WebCore::FloatPoint::rotate):
* Source/WebCore/platform/graphics/FloatRect.h:
(WebCore::FloatRect::FloatRect):
(WebCore::FloatRect::location const):
(WebCore::FloatRect::size const):
(WebCore::FloatRect::x const):
(WebCore::FloatRect::y const):
(WebCore::FloatRect::maxX const):
(WebCore::FloatRect::maxY const):
(WebCore::FloatRect::width const):
(WebCore::FloatRect::height const):
(WebCore::FloatRect::area const):
(WebCore::FloatRect::isEmpty const):
(WebCore::FloatRect::isZero const):
(WebCore::FloatRect::center const):
(WebCore::FloatRect::minXMinYCorner const):
(WebCore::FloatRect::maxXMinYCorner const):
(WebCore::FloatRect::minXMaxYCorner const):
(WebCore::FloatRect::maxXMaxYCorner const):
(WebCore::FloatRect::contains const):
(WebCore::FloatRect::overlapsYRange const):
(WebCore::FloatRect::overlapsXRange const):
(WebCore::FloatRect::transposedRect const):
(WebCore::operator+):
(WebCore::FloatRect::infiniteRect):
(WebCore::FloatRect::isInfinite const):
(WebCore::FloatRect::smallestRect):
(WebCore::FloatRect::isSmallest const):
(WebCore::FloatRect::nanRect):
(WebCore::FloatRect::isNaN const):
* Source/WebCore/platform/graphics/FloatSize.cpp:
(WebCore::FloatSize::isZero const): Deleted.
* Source/WebCore/platform/graphics/FloatSize.h:
(WebCore::FloatSize::isZero const):
* Tools/TestWebKitAPI/Tests/WebCore/FloatRectTests.cpp:
(TestWebKitAPI::TEST):
* Tools/TestWebKitAPI/Tests/WebCore/cg/DisplayListTestsCG.cpp:
(TestWebKitAPI::TEST):
Canonical link: https://commits.webkit.org/268866@main
More information about the webkit-changes
mailing list