mirror of
https://github.com/lvgl/lvgl.git
synced 2026-05-27 11:57:48 +08:00
fix(vg_lite): wait for vg_lite_tvg finish before drawing the mask (#9489)
Signed-off-by: pengyiqiang <pengyiqiang@xiaomi.com>
This commit is contained in:
@@ -53,11 +53,17 @@ void lv_draw_vg_lite_mask_rect(lv_draw_task_t * t, const lv_draw_mask_rect_dsc_t
|
|||||||
|
|
||||||
LV_PROFILER_DRAW_BEGIN;
|
LV_PROFILER_DRAW_BEGIN;
|
||||||
|
|
||||||
|
lv_draw_vg_lite_unit_t * u = (lv_draw_vg_lite_unit_t *)t->draw_unit;
|
||||||
|
|
||||||
#if LV_USE_VG_LITE_THORVG
|
#if LV_USE_VG_LITE_THORVG
|
||||||
/**
|
/**
|
||||||
* ThorVG does not yet support simulating the VG_LITE_BLEND_DST_IN blend mode,
|
* ThorVG does not yet support simulating the VG_LITE_BLEND_DST_IN blend mode,
|
||||||
* and uses software rendering to achieve this
|
* and uses software rendering to achieve this
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* Since the buffer content will be modified later, it is necessary to ensure that ThorVG rendering is complete. */
|
||||||
|
lv_vg_lite_finish(u);
|
||||||
|
|
||||||
lv_layer_t * target_layer = t->target_layer;
|
lv_layer_t * target_layer = t->target_layer;
|
||||||
const lv_area_t * buf_area = &target_layer->buf_area;
|
const lv_area_t * buf_area = &target_layer->buf_area;
|
||||||
lv_area_t clear_area;
|
lv_area_t clear_area;
|
||||||
@@ -123,8 +129,6 @@ void lv_draw_vg_lite_mask_rect(lv_draw_task_t * t, const lv_draw_mask_rect_dsc_t
|
|||||||
lv_free(mask_buf);
|
lv_free(mask_buf);
|
||||||
lv_draw_sw_mask_free_param(¶m);
|
lv_draw_sw_mask_free_param(¶m);
|
||||||
#else
|
#else
|
||||||
lv_draw_vg_lite_unit_t * u = (lv_draw_vg_lite_unit_t *)t->draw_unit;
|
|
||||||
|
|
||||||
lv_vg_lite_path_t * path = lv_vg_lite_path_get(u, VG_LITE_FP32);
|
lv_vg_lite_path_t * path = lv_vg_lite_path_get(u, VG_LITE_FP32);
|
||||||
lv_vg_lite_path_set_bounding_box_area(path, &t->clip_area);
|
lv_vg_lite_path_set_bounding_box_area(path, &t->clip_area);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user