mirror of
https://github.com/lvgl/lvgl.git
synced 2026-03-24 07:18:34 +08:00
fix(refr): flag when all tasks are added to screen layers (#9739)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -863,6 +863,7 @@ static void refr_area(const lv_area_t * area_p, int32_t y_offset)
|
||||
layer->_clip_area = *area_p;
|
||||
layer->phy_clip_area = *area_p;
|
||||
layer->partial_y_offset = y_offset;
|
||||
layer->all_tasks_added = false;
|
||||
|
||||
if(disp_refr->render_mode == LV_DISPLAY_RENDER_MODE_PARTIAL) {
|
||||
/*In partial mode render this area to the buffer*/
|
||||
@@ -904,6 +905,7 @@ static void refr_area(const lv_area_t * area_p, int32_t y_offset)
|
||||
|
||||
if(tile_cnt == 1) {
|
||||
refr_configured_layer(layer);
|
||||
layer->all_tasks_added = true;
|
||||
}
|
||||
else {
|
||||
/* Don't draw to the layers buffer of the display but create smaller dummy layers which are using the
|
||||
@@ -931,6 +933,7 @@ static void refr_area(const lv_area_t * area_p, int32_t y_offset)
|
||||
tile_layer->buf_area = layer->buf_area; /*the buffer is still large*/
|
||||
tile_layer->draw_buf = layer->draw_buf;
|
||||
refr_configured_layer(tile_layer);
|
||||
tile_layer->all_tasks_added = true;
|
||||
}
|
||||
|
||||
|
||||
@@ -955,6 +958,8 @@ static void refr_area(const lv_area_t * area_p, int32_t y_offset)
|
||||
if(disp_refr->layer_deinit) disp_refr->layer_deinit(disp_refr, tile_layer);
|
||||
}
|
||||
lv_free(tile_layers);
|
||||
|
||||
layer->all_tasks_added = true;
|
||||
}
|
||||
|
||||
disp_refr->refreshed_area = *area_p;
|
||||
|
||||
@@ -424,6 +424,7 @@ void lv_layer_reset(lv_layer_t * layer)
|
||||
#endif
|
||||
layer->opa = LV_OPA_COVER;
|
||||
layer->recolor = lv_color32_make(0, 0, 0, 0);
|
||||
layer->all_tasks_added = false;
|
||||
}
|
||||
|
||||
lv_layer_t * lv_draw_layer_create(lv_layer_t * parent_layer, lv_color_format_t color_format, const lv_area_t * area)
|
||||
|
||||
@@ -172,6 +172,8 @@ lv_result_t lv_snapshot_take_to_draw_buf(lv_obj_t * obj, lv_color_format_t cf, l
|
||||
}
|
||||
}
|
||||
|
||||
layer.all_tasks_added = true;
|
||||
|
||||
while(layer.draw_task_head) {
|
||||
lv_draw_dispatch_wait_for_request();
|
||||
lv_draw_dispatch();
|
||||
|
||||
@@ -411,6 +411,8 @@ void lv_canvas_finish_layer(lv_obj_t * canvas, lv_layer_t * layer)
|
||||
return;
|
||||
}
|
||||
|
||||
layer->all_tasks_added = true;
|
||||
|
||||
bool task_dispatched;
|
||||
|
||||
while(layer->draw_task_head) {
|
||||
|
||||
Reference in New Issue
Block a user