Cleaned up the case when null parent is coming.
and found out efl_data_scope_get() could return invalid data
when invalid CLASS type is given. it's handled as well.
Dectected huge amount of unnecessray internal events triggering
which were signaled via vg nodes.
By events, nodes were connected with each others,
and finally reaches to vg object to update its rendering properly.
However GFX_PATH_CHANGE signal is too commonly triggered for scenarios,
listening and response it is too burdensome.
We acutally don't need to do this if all nodes could share the
vg object. Nodes directly notify vg object to update it.
Next patch will come to remove stupid GFX_PATH_CHANGE that's aweful
in performance wise.
This implementation uses Ector_Buffer to generate mask image from vg container,
and pass it to Ector engine. Ector renderer could blend this image as a mask.
Yet only vg container works as a mask, we could extend shape to support masking later.
Still vector gl drawing is not completed, We use software ector buffer to draw on it.
This is on progessing.
There was a big trouble that vg cache didn't free cached data properly.
Plus, there was a unnecessary copy of vg tree data.
This revised version is a improvement of our evas vg cache
in stable and optmization.
capsulate vector file data from efl canvas vg.
hide vector file data structure, capsulate it,
cut off the dependency by vector object.
yet it has evas_cache_entry interface.
Summary:
It could return NULL root node
while user expect a valid root node in default
as It did before.
This is a regresion bug from long ago.
@fix
Reviewers: #committers
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7162
Summary:
Following our naming rule, rename to like other primitives.
i.e. efl_canvas_rect, efl_canvas_image, efl_canvas_vg ...
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7013
Summary:
last function pointer indicates render_pre(),
add one more element is unnecessary.
Reviewers: #committers, netstar
Reviewed By: #committers, netstar
Subscribers: netstar, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6967
Summary:
edje_edit_object_add
edje_object_add
emotion_object_add
evas_object_xxx_add
These APIs had allowed to set parent to EFL_CANVAS_OBJECT(Evas_Object) before
8bb11a17. we should call evas_find before safety check for backward compatibility.
Test Plan:
win = elm_win_add(NULL, "main", ELM_WIN_BASIC);
1. `rect = evas_object_rectangle_add(evas_object_evas_get(win));`
2. `rect = evas_object_rectangle_add(win);`
Check that 1. and 2. works.
Reviewers: Hermet, zmike
Reviewed By: Hermet
Subscribers: cedric, #reviewers, CHAN, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6909
Summary:
Canvas allows objects become zombies.
Even though they were deleted they could be accessed by canvas
for second frames.
Reviewers: #committers, zmike
Reviewed By: #committers, zmike
Subscribers: cedric, #reviewers, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6849
Summary:
A object that is not evas class shouldn't use evas_find. it may occurs segfault.
ref c2e8b492b1
Test Plan:
Evas *evas = evas_new();
evas_free(evas);
evas_object_line_add(evas);
Check weather there is segfault.
Reviewers: Hermet, raster, zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6816
tbh, current vg interfaces a little bit bad... here is one scenario to this
stupid case.
efl_parent_set() and evas_object_vg_root_node_set() both do re-parent
job. They could be conflicted if user calls both apis in either way.
efl_parent_set(root_node, NULL); but Vg Object still keeps the root node
which is just a dangling pointer that occurs a crash while rendering.