summaryrefslogtreecommitdiff
path: root/src/static_libs
diff options
context:
space:
mode:
authorHermet Park <hermetpark@gmail.com>2019-10-17 17:39:26 +0900
committerHermet Park <hermetpark@gmail.com>2019-10-17 17:54:02 +0900
commitf247a55b5052cb73f365e18f08128b64b2b9d524 (patch)
treedce0b640637339258b72f005ecd21a898ab8b8d8 /src/static_libs
parent0e675e5cf1c78876e32bb72ef338f9478371e5c3 (diff)
downloadefl-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.c22
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(" ");