Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 44ce0c9

Browse files
committed
move all remaining Rect construction to named factories
1 parent 1833429 commit 44ce0c9

21 files changed

+80
-85
lines changed

impeller/aiks/canvas.cc

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -271,8 +271,9 @@ void Canvas::DrawRRect(Rect rect, Scalar corner_radius, const Paint& paint) {
271271

272272
void Canvas::DrawCircle(Point center, Scalar radius, const Paint& paint) {
273273
Size half_size(radius, radius);
274-
if (AttemptDrawBlurredRRect(Rect(center - half_size, half_size * 2), radius,
275-
paint)) {
274+
if (AttemptDrawBlurredRRect(
275+
Rect::MakeOriginSize(center - half_size, half_size * 2), radius,
276+
paint)) {
276277
return;
277278
}
278279
auto circle_path =

impeller/entity/contents/clip_contents.cc

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ bool ClipContents::Render(const ContentContext& renderer,
9393
{
9494
DEBUG_COMMAND_INFO(cmd, "Difference Clip (Increment)");
9595

96-
auto points = Rect(Size(pass.GetRenderTargetSize())).GetPoints();
96+
auto points = Rect::MakeSize(pass.GetRenderTargetSize()).GetPoints();
9797
auto vertices =
9898
VertexBufferBuilder<VS::PerVertexData>{}
9999
.AddVertices({{points[0]}, {points[1]}, {points[2]}, {points[3]}})
@@ -188,8 +188,9 @@ bool ClipRestoreContents::Render(const ContentContext& renderer,
188188

189189
// Create a rect that covers either the given restore area, or the whole
190190
// render target texture.
191-
auto ltrb = restore_coverage_.value_or(Rect(Size(pass.GetRenderTargetSize())))
192-
.GetLTRB();
191+
auto ltrb =
192+
restore_coverage_.value_or(Rect::MakeSize(pass.GetRenderTargetSize()))
193+
.GetLTRB();
193194
VertexBufferBuilder<VS::PerVertexData> vtx_builder;
194195
vtx_builder.AddVertices({
195196
{Point(ltrb[0], ltrb[1])},

impeller/entity/contents/filters/border_mask_blur_filter_contents.cc

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -164,9 +164,7 @@ std::optional<Rect> BorderMaskBlurFilterContents::GetFilterCoverage(
164164
auto transformed_blur_vector =
165165
transform.TransformDirection(Vector2(Radius{sigma_x_}.radius, 0)).Abs() +
166166
transform.TransformDirection(Vector2(0, Radius{sigma_y_}.radius)).Abs();
167-
auto extent = coverage->size + transformed_blur_vector * 2;
168-
return Rect(coverage->origin - transformed_blur_vector,
169-
Size(extent.x, extent.y));
167+
return coverage->Expand(transformed_blur_vector);
170168
}
171169

172170
std::optional<Rect> BorderMaskBlurFilterContents::GetFilterSourceCoverage(

impeller/entity/contents/filters/directional_gaussian_blur_filter_contents.cc

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -106,12 +106,10 @@ std::optional<Entity> DirectionalGaussianBlurFilterContents::RenderFilter(
106106
std::optional<Rect> expanded_coverage_hint;
107107
if (coverage_hint.has_value()) {
108108
auto r =
109-
Size(transformed_blur_radius_length, transformed_blur_radius_length)
109+
Point(transformed_blur_radius_length, transformed_blur_radius_length)
110110
.Abs();
111111
expanded_coverage_hint =
112-
is_second_pass_ ? coverage_hint
113-
: Rect(coverage_hint.value().origin - r,
114-
Size(coverage_hint.value().size + r * 2));
112+
is_second_pass_ ? coverage_hint : coverage_hint->Expand(r);
115113
}
116114
auto input_snapshot = inputs[0]->GetSnapshot("GaussianBlur", renderer, entity,
117115
expanded_coverage_hint);
@@ -317,9 +315,7 @@ std::optional<Rect> DirectionalGaussianBlurFilterContents::GetFilterCoverage(
317315
auto transformed_blur_vector =
318316
transform.TransformDirection(blur_direction_ * Radius{blur_sigma_}.radius)
319317
.Abs();
320-
auto extent = coverage->size + transformed_blur_vector * 2;
321-
return Rect(coverage->origin - transformed_blur_vector,
322-
Size(extent.x, extent.y));
318+
return coverage->Expand(transformed_blur_vector);
323319
}
324320

325321
} // namespace impeller

impeller/entity/contents/filters/morphology_filter_contents.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ std::optional<Entity> DirectionalMorphologyFilterContents::RenderFilter(
9696
auto transformed_radius =
9797
transform.TransformDirection(direction_ * radius_.radius);
9898
auto transformed_texture_vertices =
99-
Rect(Size(input_snapshot->texture->GetSize()))
99+
Rect::MakeSize(input_snapshot->texture->GetSize())
100100
.GetTransformedPoints(input_snapshot->transform);
101101
auto transformed_texture_width =
102102
transformed_texture_vertices[0].GetDistance(
@@ -189,7 +189,7 @@ std::optional<Rect> DirectionalMorphologyFilterContents::GetFilterCoverage(
189189
if (size.x < 0 || size.y < 0) {
190190
return Rect::MakeSize(Size(0, 0));
191191
}
192-
return Rect(origin, Size(size.x, size.y));
192+
return Rect::MakeOriginSize(origin, Size(size.x, size.y));
193193
}
194194

195195
std::optional<Rect>

impeller/entity/contents/tiled_texture_contents.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ bool TiledTextureContents::Render(const ContentContext& renderer,
128128
auto& host_buffer = pass.GetTransientsBuffer();
129129

130130
auto geometry_result = GetGeometry()->GetPositionUVBuffer(
131-
Rect({0, 0}, Size(texture_size)), GetInverseEffectTransform(), renderer,
131+
Rect::MakeSize(texture_size), GetInverseEffectTransform(), renderer,
132132
entity, pass);
133133
bool uses_emulated_tile_mode =
134134
UsesEmulatedTileMode(renderer.GetDeviceCapabilities());

impeller/entity/entity_pass.cc

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -569,11 +569,11 @@ EntityPass::EntityResult EntityPass::GetEntityForElement(
569569

570570
// The maximum coverage of the subpass. Subpasses textures should never
571571
// extend outside the parent pass texture or the current clip coverage.
572-
auto coverage_limit =
573-
Rect(global_pass_position, Size(pass_context.GetPassTarget()
574-
.GetRenderTarget()
575-
.GetRenderTargetSize()))
576-
.Intersection(clip_coverage_back.value());
572+
auto coverage_limit = Rect::MakeOriginSize(global_pass_position,
573+
Size(pass_context.GetPassTarget()
574+
.GetRenderTarget()
575+
.GetRenderTargetSize()))
576+
.Intersection(clip_coverage_back.value());
577577
if (!coverage_limit.has_value()) {
578578
capture.CreateChild("Subpass Entity (Skipped: Empty coverage limit A)");
579579
return EntityPass::EntityResult::Skip();

impeller/entity/geometry/cover_geometry.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ CoverGeometry::~CoverGeometry() = default;
1515
GeometryResult CoverGeometry::GetPositionBuffer(const ContentContext& renderer,
1616
const Entity& entity,
1717
RenderPass& pass) {
18-
auto rect = Rect(Size(pass.GetRenderTargetSize()));
18+
auto rect = Rect::MakeSize(pass.GetRenderTargetSize());
1919
constexpr uint16_t kRectIndicies[4] = {0, 1, 2, 3};
2020
auto& host_buffer = pass.GetTransientsBuffer();
2121
return GeometryResult{
@@ -44,7 +44,7 @@ GeometryResult CoverGeometry::GetPositionUVBuffer(
4444
const ContentContext& renderer,
4545
const Entity& entity,
4646
RenderPass& pass) {
47-
auto rect = Rect(Size(pass.GetRenderTargetSize()));
47+
auto rect = Rect::MakeSize(pass.GetRenderTargetSize());
4848
return ComputeUVGeometryForRect(rect, texture_coverage, effect_transform,
4949
renderer, entity, pass);
5050
}

impeller/entity/geometry/stroke_path_geometry.cc

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -522,9 +522,7 @@ std::optional<Rect> StrokePathGeometry::GetCoverage(
522522
.TransformDirection(Vector2(max_radius, max_radius) *
523523
std::max(stroke_width_, min_size))
524524
.Abs();
525-
return Rect(path_coverage.origin - max_radius_xy,
526-
Size(path_coverage.size.width + max_radius_xy.x * 2,
527-
path_coverage.size.height + max_radius_xy.y * 2));
525+
return path_coverage.Expand(max_radius_xy);
528526
}
529527

530528
} // namespace impeller

impeller/geometry/geometry_unittests.cc

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1580,36 +1580,6 @@ TEST(GeometryTest, CanConvertBetweenDegressAndRadians) {
15801580
}
15811581
}
15821582

1583-
TEST(GeometryTest, RectMakeSize) {
1584-
{
1585-
Size s(100, 200);
1586-
Rect r = Rect::MakeSize(s);
1587-
Rect expected = Rect::MakeLTRB(0, 0, 100, 200);
1588-
ASSERT_RECT_NEAR(r, expected);
1589-
}
1590-
1591-
{
1592-
ISize s(100, 200);
1593-
Rect r = Rect::MakeSize(s);
1594-
Rect expected = Rect::MakeLTRB(0, 0, 100, 200);
1595-
ASSERT_RECT_NEAR(r, expected);
1596-
}
1597-
1598-
{
1599-
Size s(100, 200);
1600-
IRect r = IRect::MakeSize(s);
1601-
IRect expected = IRect::MakeLTRB(0, 0, 100, 200);
1602-
ASSERT_EQ(r, expected);
1603-
}
1604-
1605-
{
1606-
ISize s(100, 200);
1607-
IRect r = IRect::MakeSize(s);
1608-
IRect expected = IRect::MakeLTRB(0, 0, 100, 200);
1609-
ASSERT_EQ(r, expected);
1610-
}
1611-
}
1612-
16131583
TEST(GeometryTest, RectUnion) {
16141584
{
16151585
Rect a = Rect::MakeXYWH(100, 100, 100, 100);

0 commit comments

Comments
 (0)