hermet pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=f247a55b5052cb73f365e18f08128b64b2b9d524

commit f247a55b5052cb73f365e18f08128b64b2b9d524
Author: Hermet Park <[email protected]>
Date:   Thu Oct 17 17:39:26 2019 +0900

    vector json: fix a ordering issue of stroke.
    
    for optimization, we created a shape node in a lazy way,
    This introduced corrupted layering order issue.
    
    We fix it by keeping the object creation order.
    
    Layzing creation is just for an ideal case,
    It doesn't verified the performance.
---
 src/static_libs/vg_common/vg_common_json.c | 22 ++++++++++------------
 1 file changed, 10 insertions(+), 12 deletions(-)

diff --git a/src/static_libs/vg_common/vg_common_json.c 
b/src/static_libs/vg_common/vg_common_json.c
index 138b85abb8..2c31d7881a 100644
--- a/src/static_libs/vg_common/vg_common_json.c
+++ b/src/static_libs/vg_common/vg_common_json.c
@@ -54,18 +54,6 @@ _construct_drawable_nodes(Efl_Canvas_Vg_Container *parent, 
const LOTLayerNode *l
              continue;
           }
 
-        //Skip Invisible Stroke?
-        if (node->mStroke.enable && node->mStroke.width == 0)
-          {
-             char *key = _get_key_val(node);
-             Efl_Canvas_Vg_Shape *shape = efl_key_data_get(parent, key);
-             if (shape) efl_gfx_entity_visible_set(shape, EINA_FALSE);
-             continue;
-          }
-
-        const float *data = node->mPath.ptPtr;
-        if (!data) continue;
-
         char *key = _get_key_val(node);
         Efl_Canvas_Vg_Shape *shape = efl_key_data_get(parent, key);
         if (!shape)
@@ -76,6 +64,16 @@ _construct_drawable_nodes(Efl_Canvas_Vg_Container *parent, 
const LOTLayerNode *l
         else
           efl_gfx_path_reset(shape);
 
+        //Skip Invisible Stroke?
+        if (node->mStroke.enable && node->mStroke.width == 0)
+          {
+             efl_gfx_entity_visible_set(shape, EINA_FALSE);
+             continue;
+          }
+
+        const float *data = node->mPath.ptPtr;
+        if (!data) continue;
+
         efl_gfx_entity_visible_set(shape, EINA_TRUE);
 #if DEBUG
         for (int i = 0; i < depth; i++) printf("    ");

-- 


Reply via email to