diff options
| author | Jeff Epler <jepler@gmail.com> | 2021-03-18 09:06:00 -0500 |
|---|---|---|
| committer | Jeff Epler <jepler@gmail.com> | 2021-03-18 09:06:00 -0500 |
| commit | 3b506f0fa59872916b617083a3dad9cadd07c428 (patch) | |
| tree | 48ab750596bf59834628421abeb3d81277326197 | |
| parent | f40c0c13adacf39bc9a21afd2d9ebbf29135e0f0 (diff) | |
displayio: area: add displayio_area_canon
This routine will be used to simplify code that deals with ranges
of bitmap coordinates.
| -rw-r--r-- | shared-module/displayio/__init__.c | 13 | ||||
| -rw-r--r-- | shared-module/displayio/area.h | 1 |
2 files changed, 14 insertions, 0 deletions
diff --git a/shared-module/displayio/__init__.c b/shared-module/displayio/__init__.c index 07fd60386..18d08c530 100644 --- a/shared-module/displayio/__init__.c +++ b/shared-module/displayio/__init__.c @@ -320,6 +320,19 @@ bool displayio_area_empty(const displayio_area_t *a) { return (a->x1 == a->x2) || (a->y1 == a->y2); } +void displayio_area_canon(displayio_area_t *a) { + if (a->x1 < a->x2) { + int16_t t = a->x1; + a->x1 = a->x2; + a->x2 = t; + } + if (a->y1 < a->y2) { + int16_t t = a->y1; + a->y1 = a->y2; + a->y2 = t; + } +} + void displayio_area_union(const displayio_area_t *a, const displayio_area_t *b, displayio_area_t *u) { diff --git a/shared-module/displayio/area.h b/shared-module/displayio/area.h index 1b30ce96f..b6ff1dcd2 100644 --- a/shared-module/displayio/area.h +++ b/shared-module/displayio/area.h @@ -55,6 +55,7 @@ extern displayio_buffer_transform_t null_transform; bool displayio_area_empty(const displayio_area_t *a); void displayio_area_copy_coords(const displayio_area_t *src, displayio_area_t *dest); +void displayio_area_canon(displayio_area_t *a); void displayio_area_union(const displayio_area_t *a, const displayio_area_t *b, displayio_area_t *u); |
