[layoutng] Inline a couple more geometry functions
Change-Id: I9c0c299f8aa576ea34f357ac88c2c79c0a50fb48
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1315669
Commit-Queue: Christian Biesinger <cbiesinger@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#641047}
diff --git a/third_party/blink/renderer/core/layout/BUILD.gn b/third_party/blink/renderer/core/layout/BUILD.gn
index 503f7fa..97985c4 100644
--- a/third_party/blink/renderer/core/layout/BUILD.gn
+++ b/third_party/blink/renderer/core/layout/BUILD.gn
@@ -301,7 +301,6 @@
"ng/geometry/ng_bfc_offset.h",
"ng/geometry/ng_bfc_rect.cc",
"ng/geometry/ng_bfc_rect.h",
- "ng/geometry/ng_border_edges.cc",
"ng/geometry/ng_border_edges.h",
"ng/geometry/ng_box_strut.cc",
"ng/geometry/ng_box_strut.h",
diff --git a/third_party/blink/renderer/core/layout/ng/geometry/ng_border_edges.cc b/third_party/blink/renderer/core/layout/ng/geometry/ng_border_edges.cc
deleted file mode 100644
index 12fc8f0..0000000
--- a/third_party/blink/renderer/core/layout/ng/geometry/ng_border_edges.cc
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "third_party/blink/renderer/core/layout/ng/geometry/ng_border_edges.h"
-
-namespace blink {
-
-NGBorderEdges NGBorderEdges::FromPhysical(unsigned physical_edges,
- WritingMode writing_mode) {
- if (writing_mode == WritingMode::kHorizontalTb) {
- return NGBorderEdges(physical_edges & kTop, physical_edges & kRight,
- physical_edges & kBottom, physical_edges & kLeft);
- }
- if (writing_mode != WritingMode::kSidewaysLr) {
- return NGBorderEdges(physical_edges & kRight, physical_edges & kBottom,
- physical_edges & kLeft, physical_edges & kTop);
- }
- return NGBorderEdges(physical_edges & kLeft, physical_edges & kTop,
- physical_edges & kRight, physical_edges & kBottom);
-}
-
-unsigned NGBorderEdges::ToPhysical(WritingMode writing_mode) const {
- if (writing_mode == WritingMode::kHorizontalTb) {
- return (block_start ? kTop : 0) | (line_right ? kRight : 0) |
- (block_end ? kBottom : 0) | (line_left ? kLeft : 0);
- }
- if (writing_mode != WritingMode::kSidewaysLr) {
- return (block_start ? kRight : 0) | (line_right ? kBottom : 0) |
- (block_end ? kLeft : 0) | (line_left ? kTop : 0);
- }
- return (block_start ? kLeft : 0) | (line_right ? kTop : 0) |
- (block_end ? kRight : 0) | (line_left ? kBottom : 0);
-}
-
-} // namespace blink
diff --git a/third_party/blink/renderer/core/layout/ng/geometry/ng_border_edges.h b/third_party/blink/renderer/core/layout/ng/geometry/ng_border_edges.h
index 359eaa5..975cbdf 100644
--- a/third_party/blink/renderer/core/layout/ng/geometry/ng_border_edges.h
+++ b/third_party/blink/renderer/core/layout/ng/geometry/ng_border_edges.h
@@ -36,8 +36,31 @@
kLeft = 8,
kAll = kTop | kRight | kBottom | kLeft
};
- static NGBorderEdges FromPhysical(unsigned, WritingMode);
- unsigned ToPhysical(WritingMode) const;
+ static NGBorderEdges FromPhysical(unsigned physical_edges,
+ WritingMode writing_mode) {
+ if (writing_mode == WritingMode::kHorizontalTb) {
+ return NGBorderEdges(physical_edges & kTop, physical_edges & kRight,
+ physical_edges & kBottom, physical_edges & kLeft);
+ }
+ if (writing_mode != WritingMode::kSidewaysLr) {
+ return NGBorderEdges(physical_edges & kRight, physical_edges & kBottom,
+ physical_edges & kLeft, physical_edges & kTop);
+ }
+ return NGBorderEdges(physical_edges & kLeft, physical_edges & kTop,
+ physical_edges & kRight, physical_edges & kBottom);
+ }
+ unsigned ToPhysical(WritingMode writing_mode) const {
+ if (writing_mode == WritingMode::kHorizontalTb) {
+ return (block_start ? kTop : 0) | (line_right ? kRight : 0) |
+ (block_end ? kBottom : 0) | (line_left ? kLeft : 0);
+ }
+ if (writing_mode != WritingMode::kSidewaysLr) {
+ return (block_start ? kRight : 0) | (line_right ? kBottom : 0) |
+ (block_end ? kLeft : 0) | (line_left ? kTop : 0);
+ }
+ return (block_start ? kLeft : 0) | (line_right ? kTop : 0) |
+ (block_end ? kRight : 0) | (line_left ? kBottom : 0);
+ }
};
} // namespace blink
diff --git a/third_party/blink/renderer/core/layout/ng/geometry/ng_box_strut.cc b/third_party/blink/renderer/core/layout/ng/geometry/ng_box_strut.cc
index 78822e0..74607dc 100644
--- a/third_party/blink/renderer/core/layout/ng/geometry/ng_box_strut.cc
+++ b/third_party/blink/renderer/core/layout/ng/geometry/ng_box_strut.cc
@@ -9,56 +9,6 @@
namespace blink {
-NGPhysicalBoxStrut NGBoxStrut::ConvertToPhysical(
- WritingMode writing_mode,
- TextDirection direction) const {
- LayoutUnit direction_start = inline_start;
- LayoutUnit direction_end = inline_end;
- if (direction == TextDirection::kRtl)
- std::swap(direction_start, direction_end);
- switch (writing_mode) {
- case WritingMode::kHorizontalTb:
- return NGPhysicalBoxStrut(block_start, direction_end, block_end,
- direction_start);
- case WritingMode::kVerticalRl:
- case WritingMode::kSidewaysRl:
- return NGPhysicalBoxStrut(direction_start, block_start, direction_end,
- block_end);
- case WritingMode::kVerticalLr:
- return NGPhysicalBoxStrut(direction_start, block_end, direction_end,
- block_start);
- case WritingMode::kSidewaysLr:
- return NGPhysicalBoxStrut(direction_end, block_end, direction_start,
- block_start);
- default:
- NOTREACHED();
- return NGPhysicalBoxStrut();
- }
-}
-
-NGBoxStrut NGPhysicalBoxStrut::ConvertToLogical(WritingMode writing_mode,
- TextDirection direction) const {
- NGBoxStrut strut;
- switch (writing_mode) {
- case WritingMode::kHorizontalTb:
- strut = {left, right, top, bottom};
- break;
- case WritingMode::kVerticalRl:
- case WritingMode::kSidewaysRl:
- strut = {top, bottom, right, left};
- break;
- case WritingMode::kVerticalLr:
- strut = {top, bottom, left, right};
- break;
- case WritingMode::kSidewaysLr:
- strut = {bottom, top, left, right};
- break;
- }
- if (direction == TextDirection::kRtl)
- std::swap(strut.inline_start, strut.inline_end);
- return strut;
-}
-
String NGBoxStrut::ToString() const {
return String::Format("Inline: (%d %d) Block: (%d %d)", inline_start.ToInt(),
inline_end.ToInt(), block_start.ToInt(),
diff --git a/third_party/blink/renderer/core/layout/ng/geometry/ng_box_strut.h b/third_party/blink/renderer/core/layout/ng/geometry/ng_box_strut.h
index 94d59f3b..78b342a 100644
--- a/third_party/blink/renderer/core/layout/ng/geometry/ng_box_strut.h
+++ b/third_party/blink/renderer/core/layout/ng/geometry/ng_box_strut.h
@@ -5,6 +5,8 @@
#ifndef NGBoxStrut_h
#define NGBoxStrut_h
+#include <utility>
+
#include "third_party/blink/renderer/core/core_export.h"
#include "third_party/blink/renderer/core/layout/ng/geometry/ng_logical_offset.h"
#include "third_party/blink/renderer/platform/geometry/layout_unit.h"
@@ -45,7 +47,7 @@
bool IsEmpty() const { return *this == NGBoxStrut(); }
- NGPhysicalBoxStrut ConvertToPhysical(WritingMode, TextDirection) const;
+ inline NGPhysicalBoxStrut ConvertToPhysical(WritingMode, TextDirection) const;
// The following two operators exist primarily to have an easy way to access
// the sum of border and padding.
@@ -154,7 +156,28 @@
// Converts physical dimensions to logical ones per
// https://drafts.csswg.org/css-writing-modes-3/#logical-to-physical
- NGBoxStrut ConvertToLogical(WritingMode, TextDirection) const;
+ NGBoxStrut ConvertToLogical(WritingMode writing_mode,
+ TextDirection direction) const {
+ NGBoxStrut strut;
+ switch (writing_mode) {
+ case WritingMode::kHorizontalTb:
+ strut = {left, right, top, bottom};
+ break;
+ case WritingMode::kVerticalRl:
+ case WritingMode::kSidewaysRl:
+ strut = {top, bottom, right, left};
+ break;
+ case WritingMode::kVerticalLr:
+ strut = {top, bottom, left, right};
+ break;
+ case WritingMode::kSidewaysLr:
+ strut = {bottom, top, left, right};
+ break;
+ }
+ if (direction == TextDirection::kRtl)
+ std::swap(strut.inline_start, strut.inline_end);
+ return strut;
+ }
// Converts physical dimensions to line-relative logical ones per
// https://drafts.csswg.org/css-writing-modes-3/#line-directions
@@ -180,6 +203,33 @@
LayoutUnit left;
};
+inline NGPhysicalBoxStrut NGBoxStrut::ConvertToPhysical(
+ WritingMode writing_mode,
+ TextDirection direction) const {
+ LayoutUnit direction_start = inline_start;
+ LayoutUnit direction_end = inline_end;
+ if (direction == TextDirection::kRtl)
+ std::swap(direction_start, direction_end);
+ switch (writing_mode) {
+ case WritingMode::kHorizontalTb:
+ return NGPhysicalBoxStrut(block_start, direction_end, block_end,
+ direction_start);
+ case WritingMode::kVerticalRl:
+ case WritingMode::kSidewaysRl:
+ return NGPhysicalBoxStrut(direction_start, block_start, direction_end,
+ block_end);
+ case WritingMode::kVerticalLr:
+ return NGPhysicalBoxStrut(direction_start, block_end, direction_end,
+ block_start);
+ case WritingMode::kSidewaysLr:
+ return NGPhysicalBoxStrut(direction_end, block_end, direction_start,
+ block_start);
+ default:
+ NOTREACHED();
+ return NGPhysicalBoxStrut();
+ }
+}
+
} // namespace blink
#endif // NGBoxStrut_h