diff options
| author | warriorofwire <3454741+WarriorOfWire@users.noreply.github.com> | 2020-05-10 14:17:57 -0700 |
|---|---|---|
| committer | warriorofwire <3454741+WarriorOfWire@users.noreply.github.com> | 2020-05-10 14:18:13 -0700 |
| commit | 6660311a96f063e935e85a228f8b12e3a07ca95c (patch) | |
| tree | 3220f6b69a47193de4b8598c18dffc7b2e267dc8 /shared-module/displayio/Group.c | |
| parent | 4086600b61f14e043f02c1b8771e7780b82f313c (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.c | 7 |
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); |
