summaryrefslogtreecommitdiff
path: root/shared-module/displayio/Group.c
diff options
context:
space:
mode:
authorwarriorofwire <3454741+WarriorOfWire@users.noreply.github.com>2020-05-10 14:17:57 -0700
committerwarriorofwire <3454741+WarriorOfWire@users.noreply.github.com>2020-05-10 14:18:13 -0700
commit6660311a96f063e935e85a228f8b12e3a07ca95c (patch)
tree3220f6b69a47193de4b8598c18dffc7b2e267dc8 /shared-module/displayio/Group.c
parent4086600b61f14e043f02c1b8771e7780b82f313c (diff)
vectorio: respect display transpose and mirror.
VectorShape now just uses the Group's and Display's absolute transforms.
Diffstat (limited to 'shared-module/displayio/Group.c')
-rw-r--r--shared-module/displayio/Group.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/shared-module/displayio/Group.c b/shared-module/displayio/Group.c
index 0c31de532..d6df01f3d 100644
--- a/shared-module/displayio/Group.c
+++ b/shared-module/displayio/Group.c
@@ -215,6 +215,7 @@ static mp_obj_t _add_layer(displayio_group_t* self, mp_obj_t layer) {
#if CIRCUITPY_VECTORIO
native_layer = mp_instance_cast_to_native_base(layer, &vectorio_vector_shape_type);
if (native_layer != MP_OBJ_NULL) {
+ vectorio_vector_shape_update_transform(native_layer, &self->absolute_transform);
return native_layer;
}
#endif
@@ -247,6 +248,12 @@ static void _remove_layer(displayio_group_t* self, size_t index) {
mp_obj_t layer = self->children[index].native;
displayio_area_t layer_area;
bool rendered_last_frame = false;
+#if CIRCUITPY_VECTORIO
+ if (MP_OBJ_IS_TYPE(layer, &vectorio_vector_shape_type)) {
+ vectorio_vector_shape_update_transform(layer, NULL);
+ }
+ else
+#endif
if (MP_OBJ_IS_TYPE(layer, &displayio_tilegrid_type)) {
displayio_tilegrid_t* tilegrid = layer;
rendered_last_frame = displayio_tilegrid_get_previous_area(tilegrid, &layer_area);