summaryrefslogtreecommitdiff
path: root/shared-module/displayio/Group.h
diff options
context:
space:
mode:
Diffstat (limited to 'shared-module/displayio/Group.h')
-rw-r--r--shared-module/displayio/Group.h31
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