diff options
author | Hermet Park <hermetpark@gmail.com> | 2019-10-17 17:39:26 +0900 |
---|---|---|
committer | Hermet Park <hermetpark@gmail.com> | 2019-10-17 17:54:02 +0900 |
commit | f247a55b5052cb73f365e18f08128b64b2b9d524 (patch) | |
tree | dce0b640637339258b72f005ecd21a898ab8b8d8 /src/static_libs | |
parent | 0e675e5cf1c78876e32bb72ef338f9478371e5c3 (diff) | |
download | efl-f247a55b5052cb73f365e18f08128b64b2b9d524.tar.gz |
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.
Diffstat (limited to 'src/static_libs')
-rw-r--r-- | src/static_libs/vg_common/vg_common_json.c | 22 |
1 files 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(" "); |