fix(vg_lite): fix draw layer drawing is incomplete (#5729)
Signed-off-by: pengyiqiang <pengyiqiang@xiaomi.com> Co-authored-by: pengyiqiang <pengyiqiang@xiaomi.com>
This commit is contained in:
@@ -42,6 +42,7 @@ void lv_draw_vg_lite_layer(lv_draw_unit_t * draw_unit, const lv_draw_image_dsc_t
|
||||
const lv_area_t * coords)
|
||||
{
|
||||
lv_layer_t * layer = (lv_layer_t *)draw_dsc->src;
|
||||
struct _lv_draw_vg_lite_unit_t * u = (struct _lv_draw_vg_lite_unit_t *)draw_unit;
|
||||
|
||||
/*It can happen that nothing was draw on a layer and therefore its buffer is not allocated.
|
||||
*In this case just return. */
|
||||
@@ -58,6 +59,11 @@ void lv_draw_vg_lite_layer(lv_draw_unit_t * draw_unit, const lv_draw_image_dsc_t
|
||||
lv_draw_image_dsc_t new_draw_dsc = *draw_dsc;
|
||||
new_draw_dsc.src = layer->draw_buf;
|
||||
lv_draw_vg_lite_img(draw_unit, &new_draw_dsc, coords, true);
|
||||
|
||||
/* Wait for the GPU drawing to complete here,
|
||||
* otherwise it may cause the drawing to fail. */
|
||||
lv_vg_lite_finish(u);
|
||||
|
||||
LV_PROFILER_END;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user