diff options
Diffstat (limited to 'shared-module/displayio/Group.h')
| -rw-r--r-- | shared-module/displayio/Group.h | 31 |
1 files changed, 22 insertions, 9 deletions
diff --git a/shared-module/displayio/Group.h b/shared-module/displayio/Group.h index 272f3114c..5afaac1ba 100644 --- a/shared-module/displayio/Group.h +++ b/shared-module/displayio/Group.h @@ -31,24 +31,37 @@ #include <stdint.h> #include "py/obj.h" +#include "shared-module/displayio/area.h" +#include "shared-module/displayio/Palette.h" + +typedef struct { + mp_obj_t native; + mp_obj_t original; +} displayio_group_child_t; typedef struct { mp_obj_base_t base; + displayio_group_child_t* children; + displayio_buffer_transform_t absolute_transform; + displayio_area_t dirty_area; // Catch all for changed area int16_t x; int16_t y; + uint16_t scale; uint16_t size; uint16_t max_size; - mp_obj_t* children; - bool needs_refresh; + bool item_removed :1; + bool in_group :1; + bool hidden :1; + bool hidden_by_parent :1; + uint8_t padding :4; } displayio_group_t; - -void common_hal_displayio_group_construct(displayio_group_t* self, uint32_t max_size); -void common_hal_displayio_group_append(displayio_group_t* self, mp_obj_t layer); - -void displayio_group_construct(displayio_group_t* self, mp_obj_t* child_array, uint32_t max_size); -bool displayio_group_get_pixel(displayio_group_t *group, int16_t x, int16_t y, uint16_t *pixel); -bool displayio_group_needs_refresh(displayio_group_t *self); +void displayio_group_construct(displayio_group_t* self, displayio_group_child_t* child_array, uint32_t max_size, uint32_t scale, mp_int_t x, mp_int_t y); +void displayio_group_set_hidden_by_parent(displayio_group_t *self, bool hidden); +bool displayio_group_get_previous_area(displayio_group_t *group, displayio_area_t* area); +bool displayio_group_fill_area(displayio_group_t *group, const _displayio_colorspace_t* colorspace, const displayio_area_t* area, uint32_t* mask, uint32_t *buffer); +void displayio_group_update_transform(displayio_group_t *group, const displayio_buffer_transform_t* parent_transform); void displayio_group_finish_refresh(displayio_group_t *self); +displayio_area_t* displayio_group_get_refresh_areas(displayio_group_t *self, displayio_area_t* tail); #endif // MICROPY_INCLUDED_SHARED_MODULE_DISPLAYIO_GROUP_H |
