[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