From 3920263e60407c5a40bed1bccb6ef4edac1dc5ff Mon Sep 17 00:00:00 2001 From: Michal Maciola Date: Mon, 15 Mar 2021 16:39:15 +0100 Subject: [PATCH] evas vg: push vg_image no matter change flag Change-Id: I0cb4eef95320e1df9d5a53662bcc85428b14d63f --- src/lib/evas/canvas/efl_canvas_vg_image.c | 57 ++++++++++++++++--------------- 1 file changed, 29 insertions(+), 28 deletions(-) diff --git a/src/lib/evas/canvas/efl_canvas_vg_image.c b/src/lib/evas/canvas/efl_canvas_vg_image.c index 738abc2..7da0e42 100644 --- a/src/lib/evas/canvas/efl_canvas_vg_image.c +++ b/src/lib/evas/canvas/efl_canvas_vg_image.c @@ -87,36 +87,37 @@ _efl_canvas_vg_image_render_pre_tvg(EINA_UNUSED Evas_Object_Protected_Data *vg_p Efl_Canvas_Vg_Image_Data *pd = nd->data; if (!nd || !nd->data) return; - if (nd->flags == EFL_GFX_CHANGE_FLAG_NONE) return; - - nd->flags = EFL_GFX_CHANGE_FLAG_NONE; - - if (!pd->picture && pd->image) + if (nd->flags != EFL_GFX_CHANGE_FLAG_NONE) { - pd->picture = tvg_picture_new(); - if (tvg_picture_load_raw(pd->picture, pd->image, pd->w, pd->h, true) != TVG_RESULT_SUCCESS) - { - printf("Error loading image buffer \n"); - return; - } + nd->flags = EFL_GFX_CHANGE_FLAG_NONE; + + if (!pd->picture && pd->image) + { + pd->picture = tvg_picture_new(); + if (tvg_picture_load_raw(pd->picture, pd->image, pd->w, pd->h, true) != TVG_RESULT_SUCCESS) + { + printf("Error loading image buffer \n"); + return; + } + } + if (!pd->picture) return; + + EFL_CANVAS_VG_COMPUTE_MATRIX(cTransform, pTransform, nd); + tvg_paint_translate(pd->picture, nd->x, nd->y); + if (cTransform) + { + _convert_eina_to_tvg_mat(cTransform, &trans_mat); + trans_mat.e13 += nd->x; + trans_mat.e23 += nd->y; + tvg_paint_transform(pd->picture, &trans_mat); + } + + efl_gfx_color_get(obj, NULL, NULL, NULL, &alpha); + EFL_CANVAS_VG_COMPUTE_ALPHA(c_r, c_g, c_b, c_a, alpha, nd); + + //FIX_TVG: apply color + tvg_paint_set_opacity(pd->picture, alpha); } - if (!pd->picture) return; - - EFL_CANVAS_VG_COMPUTE_MATRIX(cTransform, pTransform, nd); - tvg_paint_translate(pd->picture, nd->x, nd->y); - if (cTransform) - { - _convert_eina_to_tvg_mat(cTransform, &trans_mat); - trans_mat.e13 += nd->x; - trans_mat.e23 += nd->y; - tvg_paint_transform(pd->picture, &trans_mat); - } - - efl_gfx_color_get(obj, NULL, NULL, NULL, &alpha); - EFL_CANVAS_VG_COMPUTE_ALPHA(c_r, c_g, c_b, c_a, alpha, nd); - - //FIX_TVG: apply color - tvg_paint_set_opacity(pd->picture, alpha); if (scene) tvg_scene_push(scene, pd->picture); else if (canvas) tvg_canvas_push(canvas, pd->picture); -- 2.7.4