From a32a318ab3b253ee4e4b8aae520b2d97c19a52f0 Mon Sep 17 00:00:00 2001 From: foamyguy Date: Sun, 1 Dec 2024 20:37:19 -0600 Subject: [PATCH 1/3] fix vectorio rotation issue --- shared-module/vectorio/VectorShape.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/shared-module/vectorio/VectorShape.c b/shared-module/vectorio/VectorShape.c index ca6a68adb6da..9362ac07b8f9 100644 --- a/shared-module/vectorio/VectorShape.c +++ b/shared-module/vectorio/VectorShape.c @@ -96,10 +96,12 @@ static void _get_screen_area(vectorio_vector_shape_t *self, displayio_area_t *ou x = self->absolute_transform->x + self->absolute_transform->dx * self->y; y = self->absolute_transform->y + self->absolute_transform->dy * self->x; if (self->absolute_transform->dx < 1) { + x -= 1; out_area->y1 = out_area->y1 * -1 + 1; out_area->y2 = out_area->y2 * -1 + 1; } if (self->absolute_transform->dy < 1) { + y -= 1; out_area->x1 = out_area->x1 * -1 + 1; out_area->x2 = out_area->x2 * -1 + 1; } @@ -109,10 +111,12 @@ static void _get_screen_area(vectorio_vector_shape_t *self, displayio_area_t *ou y = self->absolute_transform->y + self->absolute_transform->dy * self->y; if (self->absolute_transform->dx < 1) { + x -= 1; out_area->x1 = out_area->x1 * -1 + 1; out_area->x2 = out_area->x2 * -1 + 1; } if (self->absolute_transform->dy < 1) { + y -= 1; out_area->y1 = out_area->y1 * -1 + 1; out_area->y2 = out_area->y2 * -1 + 1; } @@ -132,9 +136,11 @@ static void screen_to_shape_coordinates(vectorio_vector_shape_t *self, uint16_t VECTORIO_SHAPE_PIXEL_DEBUG(" a(%3d, %3d)", *out_shape_x, *out_shape_y); if (self->absolute_transform->dx < 1) { *out_shape_y *= -1; + *out_shape_y -= 1; } if (self->absolute_transform->dy < 1) { *out_shape_x *= -1; + *out_shape_x -= 1; } VECTORIO_SHAPE_PIXEL_DEBUG(" b(%3d, %3d)", *out_shape_x, *out_shape_y); } else { @@ -144,9 +150,11 @@ static void screen_to_shape_coordinates(vectorio_vector_shape_t *self, uint16_t VECTORIO_SHAPE_PIXEL_DEBUG(" a(%3d, %3d)", *out_shape_x, *out_shape_y); if (self->absolute_transform->dx < 1) { *out_shape_x *= -1; + *out_shape_x -= 1; } if (self->absolute_transform->dy < 1) { *out_shape_y *= -1; + *out_shape_y -= 1; } VECTORIO_SHAPE_PIXEL_DEBUG(" b(%3d, %3d)", *out_shape_x, *out_shape_y); From c63e56533461a4a1793fda922ce1b2711b629b7b Mon Sep 17 00:00:00 2001 From: foamyguy Date: Sun, 1 Dec 2024 21:42:51 -0600 Subject: [PATCH 2/3] move 'after' print to cut a duplicate line --- shared-module/vectorio/VectorShape.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/shared-module/vectorio/VectorShape.c b/shared-module/vectorio/VectorShape.c index 9362ac07b8f9..75e1de8b9607 100644 --- a/shared-module/vectorio/VectorShape.c +++ b/shared-module/vectorio/VectorShape.c @@ -142,7 +142,6 @@ static void screen_to_shape_coordinates(vectorio_vector_shape_t *self, uint16_t *out_shape_x *= -1; *out_shape_x -= 1; } - VECTORIO_SHAPE_PIXEL_DEBUG(" b(%3d, %3d)", *out_shape_x, *out_shape_y); } else { *out_shape_x = x - self->absolute_transform->x - self->absolute_transform->dx * self->x; *out_shape_y = y - self->absolute_transform->y - self->absolute_transform->dy * self->y; @@ -156,8 +155,6 @@ static void screen_to_shape_coordinates(vectorio_vector_shape_t *self, uint16_t *out_shape_y *= -1; *out_shape_y -= 1; } - VECTORIO_SHAPE_PIXEL_DEBUG(" b(%3d, %3d)", *out_shape_x, *out_shape_y); - // It's mirrored via dx. Maybe we need to add support for also separately mirroring? // if (self->absolute_transform->mirror_x) { // pixel_to_get_x = (shape_area.x2 - shape_area.x1) - (pixel_to_get_x - shape_area.x1) + shape_area.x1 - 1; @@ -166,6 +163,7 @@ static void screen_to_shape_coordinates(vectorio_vector_shape_t *self, uint16_t // pixel_to_get_y = (shape_area.y2 - shape_area.y1) - (pixel_to_get_y - shape_area.y1) + +shape_area.y1 - 1; // } } + VECTORIO_SHAPE_PIXEL_DEBUG(" b(%3d, %3d)", *out_shape_x, *out_shape_y); } static void check_bounds_and_set_x(vectorio_vector_shape_t *self, mp_int_t x) { From 526b151e93c2da8b86e3e91b528c938dfd5bee71 Mon Sep 17 00:00:00 2001 From: foamyguy Date: Mon, 2 Dec 2024 07:20:38 -0600 Subject: [PATCH 3/3] disable overflowing --- ports/atmel-samd/boards/feather_m4_express/mpconfigboard.mk | 1 + ports/atmel-samd/boards/metro_m4_express/mpconfigboard.mk | 1 + ports/atmel-samd/boards/openbook_m4/mpconfigboard.mk | 1 + 3 files changed, 3 insertions(+) diff --git a/ports/atmel-samd/boards/feather_m4_express/mpconfigboard.mk b/ports/atmel-samd/boards/feather_m4_express/mpconfigboard.mk index 9f908c98f148..4958581056e6 100644 --- a/ports/atmel-samd/boards/feather_m4_express/mpconfigboard.mk +++ b/ports/atmel-samd/boards/feather_m4_express/mpconfigboard.mk @@ -15,6 +15,7 @@ CIRCUITPY_CODEOP = 0 CIRCUITPY_FLOPPYIO = 0 CIRCUITPY_JPEGIO = 0 CIRCUITPY_SYNTHIO = 0 +CIRCUITPY_VECTORIO = 0 # We don't have room for the fonts for terminalio for certain languages, # so turn off terminalio, and if it's off and displayio is on, diff --git a/ports/atmel-samd/boards/metro_m4_express/mpconfigboard.mk b/ports/atmel-samd/boards/metro_m4_express/mpconfigboard.mk index 0567918884ac..55a307ed4e30 100644 --- a/ports/atmel-samd/boards/metro_m4_express/mpconfigboard.mk +++ b/ports/atmel-samd/boards/metro_m4_express/mpconfigboard.mk @@ -15,6 +15,7 @@ CIRCUITPY_CODEOP = 0 CIRCUITPY_FLOPPYIO = 0 CIRCUITPY_JPEGIO = 0 CIRCUITPY_SYNTHIO = 0 +CIRCUITPY_VECTORIO = 0 # We don't have room for the fonts for terminalio for certain languages, # so turn off terminalio, and if it's off and displayio is on, diff --git a/ports/atmel-samd/boards/openbook_m4/mpconfigboard.mk b/ports/atmel-samd/boards/openbook_m4/mpconfigboard.mk index c6eaa6bd64d5..a786b5ebc654 100644 --- a/ports/atmel-samd/boards/openbook_m4/mpconfigboard.mk +++ b/ports/atmel-samd/boards/openbook_m4/mpconfigboard.mk @@ -13,3 +13,4 @@ LONGINT_IMPL = MPZ CIRCUITPY_KEYPAD = 1 CIRCUITPY_SYNTHIO = 0 CIRCUITPY_JPEGIO = 0 +CIRCUITPY_FLOPPYIO = 0