Skip to content

Commit a13da2a

Browse files
authored
Merge pull request #4486 from kmatch98/displayio_area_expand
`displayio` and `vectorio`: move to displayio_area_union and away from _expand
2 parents 9ac8ea5 + 56362a9 commit a13da2a

File tree

5 files changed

+6
-31
lines changed

5 files changed

+6
-31
lines changed

shared-module/displayio/Group.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,15 +123,15 @@ bool displayio_group_get_previous_area(displayio_group_t *self, displayio_area_t
123123
displayio_area_copy(&layer_area, area);
124124
first = false;
125125
} else {
126-
displayio_area_expand(area, &layer_area);
126+
displayio_area_union(area, &layer_area, area);
127127
}
128128
}
129129
if (self->item_removed) {
130130
if (first) {
131131
displayio_area_copy(&self->dirty_area, area);
132132
first = false;
133133
} else {
134-
displayio_area_expand(area, &self->dirty_area);
134+
displayio_area_union(area, &self->dirty_area, area);
135135
}
136136
}
137137
return !first;
@@ -307,7 +307,7 @@ static void _remove_layer(displayio_group_t *self, size_t index) {
307307
if (!self->item_removed) {
308308
displayio_area_copy(&layer_area, &self->dirty_area);
309309
} else {
310-
displayio_area_expand(&self->dirty_area, &layer_area);
310+
displayio_area_union(&self->dirty_area, &layer_area, &self->dirty_area);
311311
}
312312
self->item_removed = true;
313313
}

shared-module/displayio/TileGrid.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ void common_hal_displayio_tilegrid_set_tile(displayio_tilegrid_t *self, uint16_t
273273
tile_area->y2 = tile_area->y1 + self->tile_height;
274274

275275
if (self->partial_change) {
276-
displayio_area_expand(&self->dirty_area, &temp_area);
276+
displayio_area_union(&self->dirty_area, &temp_area, &self->dirty_area);
277277
}
278278

279279
self->partial_change = true;

shared-module/displayio/__init__.c

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -245,21 +245,6 @@ void displayio_gc_collect(void) {
245245
}
246246
}
247247

248-
void displayio_area_expand(displayio_area_t *original, const displayio_area_t *addition) {
249-
if (addition->x1 < original->x1) {
250-
original->x1 = addition->x1;
251-
}
252-
if (addition->y1 < original->y1) {
253-
original->y1 = addition->y1;
254-
}
255-
if (addition->x2 > original->x2) {
256-
original->x2 = addition->x2;
257-
}
258-
if (addition->y2 > original->y2) {
259-
original->y2 = addition->y2;
260-
}
261-
}
262-
263248
void displayio_area_copy(const displayio_area_t *src, displayio_area_t *dst) {
264249
dst->x1 = src->x1;
265250
dst->y1 = src->y1;

shared-module/displayio/area.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ void displayio_area_canon(displayio_area_t *a);
5959
void displayio_area_union(const displayio_area_t *a,
6060
const displayio_area_t *b,
6161
displayio_area_t *u);
62-
void displayio_area_expand(displayio_area_t *original, const displayio_area_t *addition);
6362
void displayio_area_copy(const displayio_area_t *src, displayio_area_t *dst);
6463
void displayio_area_scale(displayio_area_t *area, uint16_t scale);
6564
void displayio_area_shift(displayio_area_t *area, int16_t dx, int16_t dy);

shared-module/vectorio/VectorShape.c

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -55,16 +55,7 @@ static void _get_screen_area(vectorio_vector_shape_t *self, displayio_area_t *ou
5555
out_area->y2 = (out_area->y2 + self->y) * self->absolute_transform->dy + self->absolute_transform->y;
5656
}
5757
// We might have mirrored due to dx
58-
if (out_area->x2 < out_area->x1) {
59-
int16_t swap = out_area->x1;
60-
out_area->x1 = out_area->x2;
61-
out_area->x2 = swap;
62-
}
63-
if (out_area->y2 < out_area->y1) {
64-
int16_t swap = out_area->y1;
65-
out_area->y1 = out_area->y2;
66-
out_area->y2 = swap;
67-
}
58+
displayio_area_canon(out_area);
6859
VECTORIO_SHAPE_DEBUG(" out:{(%5d,%5d), (%5d,%5d)}\n", out_area->x1, out_area->y1, out_area->x2, out_area->y2);
6960
}
7061

@@ -88,7 +79,7 @@ void common_hal_vectorio_vector_shape_set_dirty(void *vector_shape) {
8879
self->ephemeral_dirty_area.x1, self->ephemeral_dirty_area.y1, self->ephemeral_dirty_area.x2, self->ephemeral_dirty_area.y2);
8980
self->dirty = true;
9081
// Dirty area tracks the shape's footprint between draws. It's reset on refresh finish,
91-
displayio_area_expand(&self->ephemeral_dirty_area, &current_area);
82+
displayio_area_union(&self->ephemeral_dirty_area, &current_area, &self->ephemeral_dirty_area);
9283
VECTORIO_SHAPE_DEBUG(" -> expanded:{(%3d,%3d), (%3d,%3d)}\n", self->ephemeral_dirty_area.x1, self->ephemeral_dirty_area.y1, self->ephemeral_dirty_area.x2, self->ephemeral_dirty_area.y2);
9384
}
9485

0 commit comments

Comments
 (0)