@@ -82,10 +82,16 @@ bool common_hal_displayio_tilegrid_get_hidden(displayio_tilegrid_t *self) {
8282 return self -> hidden ;
8383}
8484
85+ bool displayio_tilegrid_get_rendered_hidden (displayio_tilegrid_t * self ) {
86+ return self -> rendered_hidden ;
87+ }
88+
8589void common_hal_displayio_tilegrid_set_hidden (displayio_tilegrid_t * self , bool hidden ) {
8690 self -> hidden = hidden ;
8791 if (!hidden ) {
8892 self -> full_change = true;
93+ }else {
94+ self -> rendered_hidden = false;
8995 }
9096}
9197
@@ -578,16 +584,23 @@ void displayio_tilegrid_finish_refresh(displayio_tilegrid_t *self) {
578584}
579585
580586displayio_area_t * displayio_tilegrid_get_refresh_areas (displayio_tilegrid_t * self , displayio_area_t * tail ) {
587+ //mp_printf(&mp_plat_print, "x1 : %d x2: %d \n", self->previous_area.x1, self->previous_area.x2);
581588 bool first_draw = self -> previous_area .x1 == self -> previous_area .x2 ;
582589 bool hidden = self -> hidden || self -> hidden_by_parent ;
590+ //mp_printf(&mp_plat_print, "first draw: %d\n", first_draw);
583591 // Check hidden first because it trumps all other changes.
584592 if (hidden ) {
585- if (!first_draw ) {
586- self -> previous_area .next = tail ;
587- return & self -> previous_area ;
588- } else {
589- return tail ;
590- }
593+ //mp_printf(&mp_plat_print, "rendered_hidden: %d\n", self->rendered_hidden);
594+ //if (!self->rendered_hidden){
595+ self -> rendered_hidden = true;
596+ if (!first_draw ) {
597+ self -> previous_area .next = tail ;
598+ return & self -> previous_area ;
599+ } else {
600+ return tail ;
601+ }
602+ //}
603+
591604 } else if (self -> moved && !first_draw ) {
592605 displayio_area_union (& self -> previous_area , & self -> current_area , & self -> dirty_area );
593606 if (displayio_area_size (& self -> dirty_area ) <= 2U * self -> pixel_width * self -> pixel_height ) {
0 commit comments