Commit Graph

4044 Commits

Author SHA1 Message Date
Xavi Artigas 295418ed59 doc: Fix misuse of $ instead of @ in comments
$ renders the next word monospaced whereas @ turns the next word into a link.
2018-11-13 12:41:51 +01:00
Carsten Haitzler 3ed1f61198 Revert "meson: fix a potential race in evas_opt build"
This reverts commit 32b79c7986.

don't need eo as a dep anymore as i unlinked eo from the sse opt build
2018-11-12 16:42:44 +00:00
Carsten Haitzler ae2d399dd6 build - evas - sse3 optimized code - decouple from eo 2018-11-12 16:42:17 +00:00
Daniel Kolesa 32b79c7986 meson: fix a potential race in evas_opt build
We need to declare dependencies for .eo file generation to prevent
compiling files depending on generated files before they are
generated.
2018-11-12 16:22:20 +01:00
Carsten Haitzler 5aa8afd60d evas textblock - fix unused params/vars 2018-11-09 12:37:09 +00:00
Carsten Haitzler 34b45b235c evas textblock - use proepr free iterator prototype 2018-11-09 11:44:00 +00:00
Carsten Haitzler ca26f83ec9 evas - warn - use correct free func prototype 2018-11-09 11:44:00 +00:00
Carsten Haitzler d70ee74ded evas - neon blend - warn - color mul, not used in one asm func - mark as such 2018-11-09 11:44:00 +00:00
Carsten Haitzler c1ad0879a1 meson - add checks/options for mmx, sse3, neon, altivec
so we can build our assembly fast-paths again.... - also clean up the
code a bit to match...
2018-11-09 11:43:59 +00:00
Marcel Hollerbach 21845a11dd meson: fix hyphen support
there was a missing define for the search directory
2018-11-07 13:41:08 +01:00
Daniel Hirt 6285cfe366 Efl text style: remove 'underline2_type' property
This moves the logic to the 'underline_type' property, in which we
define the type.
2018-11-06 18:13:21 +02:00
Daniel Hirt e1fc2ea48f Canvas text: share common style strings in style_set
Style strings will now be implicitly handled and shared by the object.

Also, some of the code was simplified for better readability.

@optimize
2018-11-06 00:54:10 +02:00
Daniel Hirt d50bc7f885 Canvas text: remove old style tag 'replace_len' field
The result isn't used at all, so the field is useless.
Maybe we should use stringshare comparisons.
2018-11-06 00:54:10 +02:00
Daniel Hirt 581fa91a6b Canvas text: emit text,changed event on markup_insert 2018-11-05 18:17:42 +02:00
Daniel Hirt 9903e7d556 Text: add markup_range_get
This allows to retrieve the markup representation of the current text.

@feature
2018-11-05 17:31:06 +02:00
Daniel Hirt 294040c86e Canvas text: don't emit 'cursor,changed' on legacy cursor_copy 2018-11-05 17:31:06 +02:00
Daniel Hirt 2caa38f166 Canvas text: fix line_jump_by logic
Some cases of line_jump_by did not emit "cursor,changed" when it should
have.

@fix
2018-11-05 17:31:06 +02:00
Jiyoun Park 98149c4c2b evas_render: fix objects change occured withoout real rendering.
Summary:
: condition of problem
- rectangle object of RECT part(BASE part of below edje)
- mapped
- has clipper and clipper is ed's base clipper.

1. _evas_render_phase1_object_process is called of rect object
if rect is mapped, not changed, it call _evas_render_phase1_object_mapped.

2. _evas_render_phase1_object_mapped
when _evas_render_phase1_object_mapped is called,
condition is
src_changed=0 , is_active=0 , obj_changed=0
hmap=0 => because map of this object is only enabled once and not changed.

in this case, rect object's clipper always changed and it cause useless randering

so only call _evas_render_phase1_object_map_clipper_fix when obj is changed.
first time of map set, evas object always be changed, so it maybe ok we call clipper_fix only obj is chaned.

below is sample of edj.

group { name: "elm/notify/center/default";

   parts {
      part { name: "anim_start";
             scale: 1;
             type: SPACER;
             description {
..
              perspective {
                             zplane: -100;
                             focal: 1000;
                          }
                   }
        }
          part { name: "anim_stop";
             scale: 1;
             type: SPACER;
             description {
..
             perspective {
                             zplane: 0;
                             focal: 1000;
                          }
                   }
        }
      part { name: "base";
             scale: 1;
         type: RECT;
         description { state: "default" 0.0;
..
            map {
                on: 1;
                perspective_on: 1;
                perspective: "anim_stop";
           }
         }
      }

Reviewers: raster, Hermet

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7219
2018-11-05 14:20:42 +09:00
Marcel Hollerbach 47e6bbb397 evas - fix pending object set tracking to not multi-add the same object
flag if obj in pending array and don't add if already there. fixes
run-away slowness in rendering in some cases
2018-10-31 11:43:55 +00:00
Carsten Haitzler 2098f55ba2 evas - remove excess data scope lookup during render when getting changed
getting smart changed meant another scope data get when we already had
the protected data in the caller. don't do that and just pass down.
saves a lot of overhead...

@optimize
2018-10-26 15:35:00 +01:00
Hermet Park 74a695ecf1 evas map: remove unnecessary count comparison.
Our map points is fixed to 4. And no plans to support other cases yet.
2018-10-26 20:33:44 +09:00
Hosang Kim 46cca0febf evas: fix backward compatibility issue.
Summary:
Sometimes mouse_grabbed flag can not be zero.
Before version of EFL, object has just one mouse_grabbed flag.
But now we have a new feature, so object has list of pointer devices
and each pointer device has mouse_grabbed flag.

We need to check all of pointer devices mouse_grabbed flag.
And if all of mouse_grabbed flag are zero, dispatch move event.

Test Plan:
{F3384050}
gcc -o button_example_01 button_example_01.c `pkg-config --cflags --libs elementary`

Reviewers: iscaro, zmike, Hermet

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7216
2018-10-26 20:28:03 +09:00
Derek Foreman e3a2d0be45 evas_object: Refactor pixels get hack
Summary:
Refactor this so it can be used by another call site in a later commit.

Also, reduce its complexity, as we only need the callback to fire, we
don't care about any of the other machinery in _evas_image_pixels_get.

Depends on D7188

Reviewers: Hermet

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7189
2018-10-26 20:15:00 +09:00
Derek Foreman bec631aa2c evas_image: Force stacking check on non-video surface
Summary:
We use this code path for native image hardware planes.  Force the
stacking check on those for now so planes don't accidentally occlude
surfaces above them.

Reviewers: Hermet

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7188
2018-10-26 20:09:37 +09:00
Hermet Park 16bad8df79 evas filter: add a commentary for a temporary fix. 2018-10-26 19:33:05 +09:00
Youngbok Shin 4107e7644d evas filter: remove critical messages from Evas Filter
Summary:
When you run filter examples with enabling GL engine support,
you can see critical messages which say don't use efl_unref for buffer object.
So, efl_unref has to be replaced with efl_del.
@fix

Test Plan: Run filter example with GL

Reviewers: cedric, Hermet, raster, woohyun

Reviewed By: Hermet

Subscribers: segfaultxavi, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7119
2018-10-26 19:30:28 +09:00
Shinwoo Kim f802c8f482 evas_image_main: make the cache->usage count eina_file size
Summary:
The image.data is set to null by evas_common_rgba_image_unload_real.
After this point the cache->usage does not count cache_entry.w and h value when
evas_gl_common_image_free calls evas_cache_image_flush.
So the cache->usage increases just around 300. If the cache->limit is 4194304,
then the cache could have around 1398 items. This would be fine.

But each items hold eina_file, and the cache does not count eina_file size.
If the file size is 326352, then a process could use 456527385 bytes.

So this patch set make the cache->usage count eina_file size.
This would be better option than https://phab.enlightenment.org/D7029

Reviewers: Hermet, jypark, cedric

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7030
2018-10-26 19:16:33 +09:00
Marcel Hollerbach e19d239147 meson: prepare general build for the bindings
for bindings we needed a system that could be used to find all special
directories of every subsystem, for eo files headers etc.
The mechanism is documented in the root meson.build

Differential Revision: https://phab.enlightenment.org/D7180
2018-10-24 12:05:58 +02:00
Daniel Kolesa 5a3d79d383 meson: add eolian custom dependencies support
This uses the meson/ninja depfile functionality + eolian to make
sure proper dependencies between generated files and .eo files
are managed, to ensure consistent re-generation of all generated
files that are affected upon .eo file modification.

For custom rules with multiple outputs, Ninja currently does not
support depfiles. Therefore, split those into two custom rules
so that the depfiles functionality can be enabled. While this
is ugly and slows down the process a little by having to invoke
Eolian twice instead of once, it has to be done and it's still
better than what we had in Autotools anyway.

Differential revision: D7187

Fixes T6700.
2018-10-24 12:02:55 +02:00
Hermet Park 36fc2e6a93 evas image: fix non-rendered preload image.
Summary:
This is one more corner-case issue that I found,
When second image doesn't use preload (but still share the resource)
canvas engine triggers cancellation for first image preload function.

Unluckly, preload thread is cancelled on the intermediate rendering,
First image is not going to rendered, even image turn it changed states.
Because end of that frame, canvas reset/flushed all active objects.

Here changes to retain the changes status to redraw it in the next frame.

Test Plan:
img1 = image_add;
image_file_set(img1, "test.jpg");
image_preload(img1, true);
show(img);

img2 = image_add;
image_file_set(img2, "test.jpg");  //same resource
image_preload(img2, false);
show(img2);

img1 is invisible.

Reviewers: #committers

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7157
2018-10-23 14:49:46 +09:00
Carsten Haitzler 7baac6a556 build - meson - fix linking of gl gneric to link to libm
need maths lib for lots of modules... so link to it.
2018-10-18 22:01:47 +01:00
Marcel Hollerbach 52e0b8440b Revert "meson: add cxx bindings"
This reverts commit 5aaf2cbb5d.

The cxx bindings were accidently merged. Things are missing (like .eot.h
files)
2018-10-18 16:12:13 +02:00
Marcel Hollerbach 5aaf2cbb5d meson: add cxx bindings
this commit adds cxx bindings to meson.

Differential Revision: https://phab.enlightenment.org/D7169
2018-10-18 16:01:07 +02:00
Hosang Kim e9eff6b30e evas_events: Fix wrong condtion.
Summary:
mouse_grabbed should not be less than zero.
But use OR instead of AND in the condition, so sometimes mouse_grabbed is -1.

Reviewers: woohyun, zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7168
2018-10-17 14:26:23 +09:00
Hermet Park edab8f44a4 evas vg: fix memory leak at gradient.
Summary:
free memory properly when object is deleted.

@fix

Reviewers: #committers, devilhorns

Reviewed By: #committers, devilhorns

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7165
2018-10-17 14:08:32 +09:00
Hermet Park adcaa8b82b devas vg: return default root node if possible.
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
2018-10-16 15:07:51 +09:00
Hermet Park 00f889d91a evas vg: fix memory leak.
Summary:
eina array must be flushed when object is deleted.

@fix

Reviewers: #committers, devilhorns

Reviewed By: #committers, devilhorns

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7160
2018-10-16 12:24:01 +09:00
Hermet Park 57fd66c4b5 evas image: fix preloading compatibility broken.
Well... Logically, we don't need to request preload again,
If image is loaded already. But somewhow it broke the enlightenment pager
and I need to revert the previous behavior here.

Whatever image is loaded or not, here image requests preload again,
unless it is already on preloading.

This was introduced by babacf41b7269a257065a41a2a4ec7763bada25f.

This fixes enlightenment pager bg non visible issue.
2018-10-12 14:32:20 +09:00
Carsten Haitzler 0c1eab0cf9 evas cache - avoid a segv...
but this needs mroe digging as to how this state was gotten to to
begin with.
2018-10-11 16:25:06 +01:00
Hermet Park 9f99ab1eae evas cache: clear up caching locking and reference count.
Summary:
On reviewing, found out some logical problems in evas cache.

ref-drop pair doesn't make sense, proper locking for cache image neither.

Reviewers: raster, #reviewers

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7129
2018-10-11 13:54:40 +09:00
Hermet Park 27fd6a2eab evas: remove redundant internal functions.
Summary:
Since efl object is introduced, magic check is no more used.
Plus, remove redundant object functions interfaces
 - type_id,
 - visual_id,
 - store
 - unstore

Reviewers: #committers, bu5hm4n

Reviewed By: #committers, bu5hm4n

Subscribers: bu5hm4n, raster, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7153
2018-10-11 13:46:37 +09:00
Hermet Park 1bc57942c0 evas vector: fix typo. 2018-10-10 14:22:34 +09:00
Marcel Hollerbach 347dc66ba9 meson: unify system properties
this unifies the system types into 4 boolean flags
This fixes the fact that meson changed the system string accross
versions.

Differential Revision: https://phab.enlightenment.org/D7144
2018-10-05 13:40:29 +02:00
Marcel Hollerbach 46d464e5bf here comes meson
a new shiny buildtool that currently completes in the total of ~ 4 min..
1 min. conf time
2:30 min. build time
Where autotools takes:
1:50 min. conf time
3:40 min. build time.

meson was taken because it went quite good for enlightenment, and is a traction gaining system that is also used by other mayor projects. Additionally, the DSL that is defined my meson makes the configuration of the builds a lot easier to read.

Further informations can be gathered from the README.meson

Right now, bindings & windows support are missing.

It is highly recommented to use meson 0.48 due to optimizations in meson
that reduced the time the meson call would need.

Co-authored-by: Mike Blumenkrantz <zmike@samsung.com>

Differential Revision: https://phab.enlightenment.org/D7012
Depends on D7011
2018-10-02 17:22:50 +02:00
Jaeun Choi 6f26da1d72 evas_textblock_hyphenation: remove incorrect expression
Summary: dict->cset is an array, not a pointer, thus is never NULL.

Test Plan: N/A

Reviewers: id213sin, cedric, Hermet, jypark

Reviewed By: jypark

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7121
2018-10-01 15:24:20 +09:00
Jiyoun Park 56e6ac1f5b evas_object_textblock: fix warning the dereference before null check 2018-09-28 18:07:01 +09:00
Shinwoo Kim 040bef8f13 evas_object_smart: fix dereference of null
Summary:
The cso could b NULL so we need to check if the cso is NULL or not before
dereferencing it.

Reviewers: jpeg, Hermet, jypark

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7075
2018-09-21 16:46:03 +09:00
Youngbok Shin ed621d7003 evas cache: add more null check for cache
Summary:
The 'cache' pointer is checked against null but then
dereferenced anyway. It needs to add null checking conditions.

Test Plan: N/A

Reviewers: raster, cedric, Hermet, zmike

Reviewed By: Hermet

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7084
2018-09-21 16:45:15 +09:00
Marcel Hollerbach 376b9985c3 evas_object_callbacks: do not error on NULL on del
it does not really matter if a obj is NULL or not when deleting a callback.
The result might be NULL anyways when the callback is not found.
Additionally, this is very verbose, and leads to the fact that most of
the time normal calls to evas_object_event_callback_del* should be if
(!obj) evas_object_event_callback_del* which is annoying and wastefull.

Differential Revision: https://phab.enlightenment.org/D7028
2018-09-21 09:30:51 +02:00
Derek Foreman d8d5fec1a5 efl_canvas_animation_player: Convert to new animators
Summary:
Use more efficient animator mechanism.
Depends on D7050

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7051
2018-09-18 09:43:17 -05:00
Gwanglim Lee 772759baa2 evas canvas: fix null possibility of evas_object_above_get().
fix null object return when trying to get an object
above the current object and a layer with no objects is present.
probably a layer not being cleaned somewhere.

Reviewed By: Hermet

@fix
2018-09-13 18:28:13 +09:00
Alastair Poole 0b79c20c16 evas_events: NULL check before evas_event_freezes_through.
In some cases focused_obj can be NULL. Add a check before
calling evas_event_freezes_through. Was causing a SEGV
in some situations. Avoiding a crash here is good
but we also need to warn for future debugging to
be more useful.
Differential Revision: https://phab.enlightenment.org/D7027
2018-09-12 21:20:19 +02:00
Hermet Park 945eeeab33 evas neon: fix build break.
there is a grammatic error, just fix it.
2018-09-12 13:36:35 +09:00
Jaehyun Cho 14f1866f25 efl: Remove unnecessary abstract/class inheritance
Summary:
Remove unnecessary abstract and class inheritance from eo file because
those abstracts and classes are duplicate.
e.g. if class B (class A) in B.eo file, then class C (class A, class B) in C.eo file.

Reviewers: woohyun, felipealmeida, Hermet, bu5hm4n

Reviewed By: Hermet, bu5hm4n

Subscribers: bu5hm4n, cedric, segfaultxavi, q66, #reviewers, lauromoura, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6982
2018-09-10 20:29:24 +09:00
Hermet Park 2614179af8 Revert "evas vg: changed "vg object" to "vg""
This reverts commit ec69abed9d.

Ooops, I didn't intended this patch.  @#!@#!@#!@#
2018-09-10 17:27:42 +09:00
Hermet Park 8daf8e4db8 evas image: remove duplicated EINA_UNUSED specifier. 2018-09-10 17:26:12 +09:00
Hermet Park ec69abed9d evas vg: changed "vg object" to "vg"
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
2018-09-10 14:06:58 +09:00
Wonki Kim 4fb9effee9 evas: replace a current copy color function for neon
Summary:
current copy color function has problem sometime on a arm neon environment.
inline asm code makes crashing problem.

so that this patch replace the asm code with a function which is a part of pixman project.

Reviewers: cedric, Hermet

Subscribers: kimcinoo, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6922
2018-09-10 13:36:10 +09:00
Jaehyun Cho 0dabbfe177 Revert "efl: Remove unnecessary abstract/class inheritance"
This reverts commit 4067fafe07.

As commented on D6982, the original patch changes the widget's behavior.
e.g. Efl.Ui.Win cannot be called with Efl.Config_Gloabal APIs.
     Elm.Combobox cannot provide events of Button and Hover.

Until the above changes are resolved, the original patch is reverted.
2018-09-05 17:14:22 +09:00
Jaehyun Cho 4067fafe07 efl: Remove unnecessary abstract/class inheritance
Summary:
Remove unnecessary abstract and class inheritance from eo file because
those abstracts and classes are duplicate.
e.g. if class B (class A) in B.eo file, then class C (class A, class B) in C.eo file.

Reviewers: woohyun, felipealmeida, Hermet

Reviewed By: Hermet

Subscribers: cedric, segfaultxavi, q66, #reviewers, lauromoura, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6982
2018-09-05 15:05:23 +09:00
Hermet Park 65648335c5 evas canvas: fix overflowed function initialization.
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
2018-09-04 09:08:54 +09:00
Hermet Park 423d8a2296 evas image: fix a bug in image preloading.
Summary:
Current preloading is too buggy since it's on thread-based.
This is a fundamental improvement to fix a bug.

The critical issue here is,
When preloading img object suddenly cancel its preloading,
the object possibly cannot render image next then because
renderer doesn't have any idea when async cancelling is
finished. Renderer just tries to render regardless of
image loading status, and this could occur no-texture(in gl case)
image object.

So, here improvement is, adding a notification for async cancelled
so that putting img objects to redraw images properly after their preloading is
cancelled.

The best scenario to reproduce this bug is this one.

Evas_Object *img2 = evas_object_image_filled_add(evas);
evas_object_image_file_set(img2, "test.jpg", NULL);
evas_object_image_preload(img2, EINA_FALSE);
evas_object_resize(img2, 200, 200);
evas_object_show(img2);

Evas_Object *img = evas_object_image_filled_add(evas);
evas_object_image_file_set(img, "test.jpg", NULL);
evas_object_image_preload(img, EINA_FALSE);
evas_object_move(img, 200, 200);
evas_object_resize(img, 200, 200);
evas_object_show(img);

evas_object_image_preload(img2, EINA_TRUE);
If you run this on gl backend, occasionally happens rendering fail.

Yet there other bugs on preloading feature....

@fix

Reviewers: #committers, raster

Subscribers: cedric, #reviewers, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6919
2018-09-03 17:12:55 +09:00
Yeongjong Lee 4e0b2c2fff docs: Fix typos in API reference doc
Reviewers: segfaultxavi, kimcinoo

Reviewed By: kimcinoo

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6960
2018-09-03 10:55:16 +09:00
Yeongjong Lee 02d83ebcd4 docs: Fix typos in API reference doc and comments.
Reviewers: Hermet, segfaultxavi

Reviewed By: Hermet, segfaultxavi

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6948
2018-08-31 17:45:31 +09:00
Hermet Park 5f0002ce69 efl: vector is no more beta version. 2018-08-31 12:16:24 +09:00
Chris Michael 5b9d152e14 efl: Remove cserve2 support
Summary:
As cserve2 support has not worked (if ever) in a very long time, and
it's authors are gone, this series of patches removes cserve2 (and
thus cache2) from our codebase to remove cruft and reduce
maintainability of unused code.

ref T7226
Depends on D6941

Reviewers: raster, cedric, zmike, Hermet

Reviewed By: Hermet

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7226

Differential Revision: https://phab.enlightenment.org/D6942
2018-08-30 13:59:53 +09:00
Chris Michael f5086dde02 evas: Remove cache2 support
As cserve2 support has been removed, cache2 can go away also

ref T7226
Depends on D6940
2018-08-30 13:59:14 +09:00
Chris Michael 78d5c4bdae evas-file: Remove cserve2 support
Summary:
ref T7226
Depends on D6935

Reviewers: raster, cedric, zmike, Hermet

Reviewed By: Hermet

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7226

Differential Revision: https://phab.enlightenment.org/D6937
2018-08-30 13:49:04 +09:00
Chris Michael 5b36506a68 evas-canvas: Remove cserve2 support
Summary:
ref T7226

Depends on D6933

Reviewers: raster, cedric, zmike, Hermet

Reviewed By: Hermet

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7226

Differential Revision: https://phab.enlightenment.org/D6934
2018-08-30 13:48:38 +09:00
Chris Michael 3862b304b0 evas-common: Remove cserve2 support
ref T7226

Depends on D6934
2018-08-30 13:47:27 +09:00
Hermet Park 54f2a554da evas cache: refactor internal logic.
Summary:
Adding cache targets in other modules are inproper.
This can't be managed by cache module inside.

One representive scenario is,
when preload cancel is triggered, preload canceling sequence
can't be performed properly because cache targets implicitly were
increased by backend modules.

And then, Cache itself couldn't get notified it.
see this condition.

if ((!ie->targets) && (ie->preload) && (!ie->flags.pending))
in _evas_cache_image_entry_preload_remove()

Consequently, I move preloaded callbacks to sync with adding cache targets,
not to add by backed engines themselves.

This will bring Cache to manage cache targets properly.

Reviewers: #committers, raster

Subscribers: cedric, #reviewers, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6912
2018-08-30 13:26:06 +09:00
Hermet Park 4e1553905c evas cache: remove unused custom task in preload.
Summary:
That redundant code just made code complex.

This is one of intermediate patches for preload

Reviewers: raster, #committers

Subscribers: cedric, #reviewers, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6907
2018-08-30 13:17:44 +09:00
Chris Michael c16acaeac3 evas-canvas: Add missing EINA_UNUSED for unused parameter 2018-08-29 13:15:20 -04:00
Yeongjong Lee e19292aa2b evas: call evas_find before safety check
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
2018-08-29 21:11:00 +09:00
Hermet Park 43fcca4acd evas cache: code refactoring.
rename to proper internal variables.
Differential Revision: https://phab.enlightenment.org/D6911
2018-08-27 21:25:29 +02:00
Hosang Kim 586f8ae957 efl_input: fix problem that ref count does not become 0.
1.fix reusing instance logic.
2.remove efl_ref() when default devices are created.
Differential Revision: https://phab.enlightenment.org/D6882
2018-08-27 09:43:50 +02:00
Hermet Park 541fe885ac evas image: remove redundant code. 2018-08-23 19:19:09 +09:00
Mike Blumenkrantz 69fae8c7bf evas: remove render2
Summary:
this is more or less a dead project, having not been actively developed
in over 2 years and instead forcing people to expend more time and energy
to keep it compiling across refactors

fix T7227

Reviewers: stefan_schmidt, Hermet, ManMower, devilhorns

Reviewed By: Hermet, devilhorns

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7227

Differential Revision: https://phab.enlightenment.org/D6878
2018-08-21 10:36:55 -04:00
Youngbok Shin 517018e008 evas textblock: add/apply cursor cluster APIs based on grapheme cluster
Summary:
Add a feature for moving cursor over a grapheme cluster.
It is applied to edje_entry.c and elm_entry.c for improving
cursor handling just like other modern text editors. ex) gedit
The patch on Evas needs to update libunibreak library.
So, the patch will update libunibreak, too.
@feature

Test Plan:
1. Put "ഹലോ" in your entry.
2. Your cursor can reach at the end of text from the beginning
   only in 2 right key event with this feature.

Reviewers: raster, cedric, jpeg, herdsman, zmike, devilhorns

Reviewed By: herdsman, zmike

Subscribers: #reviewers, #committers, zmike, bowonryu, woohyun

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D5490
2018-08-20 10:29:32 -04:00
Hermet Park febeaab9ce evas map: +comment for maintanance. 2018-08-20 14:39:37 +09:00
Hermet Park c9a89158db evas vg: prevent invalid access.
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
2018-08-17 15:12:19 -04:00
Yeongjong Lee 15cc9a65aa ecore_pipe: remove null check condition and fix segfualt on Windows
Summary:
This reverts commit 4917910b49.

4917910b break backward compatibility.

Reproduction:
   void pipe_handler(...);

   pipe = ecore_pipe_add(pipe_handler, NULL);
   ecore_pipe_write(pipe, NULL, 0);

Because of the null check condition, pipe_handler isn't called after 4917910b.
Some apps behavior which is written to expected to call pipe_handler was broken.

also, this patch fixed segfault during build on Windows

Test Plan: make on Windows

Reviewers: raster, zmike, vtorri

Reviewed By: zmike, vtorri

Subscribers: woohyun, cedric, #reviewers, #committers, zmike, vtorri

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6824
2018-08-17 12:42:35 -04:00
Yeongjong Lee 8bb11a172b evas: check evas class instead of using evas_find
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
2018-08-16 13:01:39 -04:00
Marcel Hollerbach 7ef8ab559d evas: support wayland static engine loading
Summary: This fixes static loading of the here changes engines.

Reviewers: ManMower, devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #reviewers, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6795
2018-08-14 17:12:07 -04:00
Yeongjong Lee 206d40e331 evas: add safety check code to avoid crash
Test Plan: evas_smart_objects_calculate(NULL);

Reviewers: zmike, Hermet, devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6805
2018-08-09 11:19:46 -04:00
Hermet Park bb984b566b evas image: fix screen flickering issue at partial + image preloading
Summary:
Prerequisite: Partial rendering ON + Image Prealoding + Triple surface buffer of GL.

Previously, evas trys to draw of an image which didn't prepare of image data yet (in case of preloading)
This time, it will draw a solid color onto the dest sufrace 1,
But luckily, preloading is finished just after, it draws proper image data onto next surface 2 and 3.

Now, triple buffer is filled with the image data but only first frame is still empty. That's a problem.

This patch skips to draw image if it doesn't prepare data yet, but once the preloading is finished,
it starts to draw images.

@fix

Reviewers: #committers

Subscribers: kimcinoo, cedric, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6739
2018-08-08 16:01:11 +09:00
Shinwoo Kim 117a0ca298 evas_image: do not render while preloading
Summary:
Unexpected image shows if image data is not ready.
Even though there is a change to check the 'preloading' in pre_render phase,
evas_object_image_render is called. So we need to check here as well.

Reference: https://phab.enlightenment.org/D6739

It seems that the 'preloading' is not enough. The 'preloading' could be reset
to FALSE by _evas_image_load_async_cancel > _image_preload_internal.

If the following step happens, then this patch set is neccessary.
(1) evas_object_image_pre_render
(2) _evas_iamge_load_async_start
(3) evas_object_image_render

I could not find out what the correct step, but it actullay happens.
The evas_object_image_render could be called with the 'preloading' TURE.

Reviewers: Hermet

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6778
2018-08-08 13:51:40 +09:00
Hermet Park 31b6e87495 evas image: code refactoring.
Summary: remove duplicated, no logical changes.

Reviewers: #committers, zmike

Reviewed By: #committers, zmike

Subscribers: cedric, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6738
2018-08-06 07:23:48 -04:00
Shinwoo Kim 9666f288ae Efl.Canvas.Group: use desired function
Summary:
If a smart class overrides Evas_Smart_Class.move as below,
then original behavior must not be used for the smart class.

   Evas_Smart_Class sc = EVAS_SMART_CLASS_INIT_NAME_VERSION("MyClass");
   evas_object_smart_clipped_smart_set(&sc);
   sc.move = &myMove;

But current implementation makes original behavior work.
So before using the original method, this patch is checking if the original
method is changed or not.

Reviewers: zmike, devilhorns

Reviewed By: zmike

Subscribers: woohyun, jypark, cedric, raster, jpeg, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6468
2018-08-02 09:10:41 -04:00
Jaehyun Cho 0b27fd8dfd evas_events: Fix to set mouse_in state to all pointers in the seat.
Summary:
mouse coordinate is set by seat.
Therefore, mouse_in state should be set based on seat.
As a result, mouse_in state of all pointers in the seat should be
updated at the same time.

Reviewers: eagleeye, devilhorns, zmike

Reviewed By: eagleeye, devilhorns, zmike

Subscribers: devilhorns, Hermet, kimcinoo, cedric, iscaro, zmike, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6699
2018-08-02 18:16:47 +09:00
Derek Foreman e7bcf0e690 evas: Defer render post callbacks added during async render
Summary:
To take screenshots, Enlightenment makes a new snapshot object, performs
a manual render, and uses the snapshot results.

Turns out if this happens while an async render is in progress, the
async render's completion triggers a render post callback on the snapshot
object even though it's never been involved in a render.

We need to defer new render post callbacks until any currently running
render completes, then add them during that render's post.

Fix T7156

Reviewers: devilhorns, zmike

Reviewed By: devilhorns, zmike

Subscribers: devilhorns, cedric, #committers, zmike

Tags: #efl

Maniphest Tasks: T7156

Differential Revision: https://phab.enlightenment.org/D6711
2018-07-31 17:03:16 -04:00
Yeshwanth Reddivari 52cf0a49c6 region_add: Fix copying wrong rect during smart merge
Summary:
When testing partial rendering on TV, found this bug.
Probably this was caused because of wrong copy/paste.
When region1 completely subsumes region2, region2 should be ignored.
But currently region2 is copied to region1 which makes region1 rect completly wrong.
This was causing lot of visual defects because of wrong rects.
This patch will fix those visual defects when partial rendering is enabled.

Test Plan: Tested with the patch on TV after enabling partial rendering.

Reviewers: raster, cedric, Hermet, ManMower

Reviewed By: ManMower

Subscribers: bu5hm4n, ajwillia.ms, ManMower, devilhorns, cedric, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6696
2018-07-31 07:29:03 -05:00
Mike Blumenkrantz be33c835ac evas: handle all failure cases with error messages in evas_init
Summary: fix T7026

Reviewers: Hermet

Reviewed By: Hermet

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T7026

Differential Revision: https://phab.enlightenment.org/D6677
2018-07-26 21:43:50 +09:00
Hermet Park cd3f808725 evas canvas: fix not to trigger unnecessary events.
Summary:
Here comparision is logically wrong because it compares
the coordinates(cur, prev) of the different spaces.

As you can see just above the conditions,
Cur coordinates could be transformed into the map space (if objs have)
on the otherhands, prev is not. These wrong condition could occur
embarassing event trigger.

@fix

Reviewers: #committers, zmike

Reviewed By: #committers, zmike

Subscribers: cedric, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6674
2018-07-24 12:04:11 -04:00
Hermet Park 2ea7bc5a81 evas clip: more strict comparison.
Summary: just improvement from D6645

Reviewers: zmike, #committers

Reviewed By: zmike, #committers

Subscribers: cedric, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6650
2018-07-23 08:18:00 -04:00
Hermet Park e34136ea72 evas clip: stop move events feeds.
Summary:
there is no point to feeding mouse events
if clipped object is invisible because
previsou/current situation won't be different.

fyi, move events won't be triggered if prev/cur coordinates
are same.

Reviewers: #committers, zmike

Reviewed By: #committers, zmike

Subscribers: cedric, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6645
2018-07-20 10:36:00 -04:00
Daniel Hirt cafe84a2c2 Evas text textblock: call evas_font_free even on null fonts
A null font set can potentially be stored and passed on. There is no
specific fallback in our codebase to roll-back if something like that
occurs.

This fixes a case where an entry of a null font was not removed from the
fonts_cache and was leaked to subsequent tests (the null font entry was
not removed from the fonts_cache).

Note that this was only apparent when EFL was built with
`--disable-fontconfig`, likely due to fontconfig succeeding to always
retrieve some non-null font.

@fix
2018-07-16 16:45:53 +03:00
Mike Blumenkrantz 6fa8c581b5 evas: fix minor typo in smart class color_set method doc
Reviewers: vtorri

Reviewed By: vtorri

Subscribers: cedric, #committers

Tags: #efl_docs

Differential Revision: https://phab.enlightenment.org/D6591
2018-07-13 17:09:06 -04:00
Hermet Park 4778a84824 canvas render: stop render_pre/post cb if it didn't render.
Summary:
Basically, render_pre/post should be called only if rendering happens.
Unfortunately, this behavior had been broken by some mistakes.

As far as I understand after reading history carefully,
this issue introduced for fixing unpair of pre/post cbs.

In case of async render, the post callback would be triggered in
evas_render_pipe_wakeup(), it means POST callbake shouldn't be tiggered in
evas_render_updates_internal(). If that post callback were removed in
evas_render_updates_internal(), then in case of sync_render,
POST callback won't be triggered. So previously, the PRE/POST couldn't get
paired.

I guess cedric put a mistake that nothing2rendering which brought
the pre/post pair issue, even he said that patch fix the unpair of them.
(But actually that patch brought the issue!)

See this: dc841ed9b2

Whatever it was intented or not, that patch totally insane, even
non-descripting.

If we just trigger post cb only if sync render or no_rendered case,
We could make satisfication for both cases.

@fix

Reviewers: #committers, devilhorns, zmike

Reviewed By: #committers, zmike

Subscribers: cedric, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6573
2018-07-12 09:14:32 -04:00
Youngbok Shin 61e8834acc evas textblock: adds missing legacy types
Summary:
Adds missing legacy types. The following types were generated in
"*.eo.legacy.h" by Eolian.
- Evas_Textblock
  evas_textblock.eo.legacy.h:7:typedef Eo Evas_Textblock;

- Evas_Textblock_Node_Format
  evas_textblock.eo.legacy.h:14:typedef struct _Evas_Textblock_Node_Format Evas_Textblock_Node_Format;

@fix

Test Plan: N/A

Reviewers: raster, cedric, herdsman, devilhorns

Subscribers: #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6529
2018-07-12 12:09:26 +03:00
Hermet Park b29209ac4b canvas vg: check expcetional case.
Summary: if file is not exists.

Reviewers: devilhorns, #committers, zmike

Reviewed By: #committers, zmike

Subscribers: cedric, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6546
2018-07-11 16:08:49 +09:00
Mike Blumenkrantz 259ba514ef evas/main: call correct destroy function in evas_free
Summary:
an evas may or may not have a parent; this is legacy api and it's all
confusing

Reviewers: bu5hm4n, devilhorns

Reviewed By: bu5hm4n

Subscribers: cedric, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6486
2018-07-05 15:12:58 -04:00
Mike Blumenkrantz b0e0fcf3d6 evas: add more error messages when passing invalid objects to evas callbacks
Summary:
this should only happen if the user has made a mistake regarding the
existence or type of an object, so ensure that an error message occurs to
help debug any failures which result

fix T6326

Reviewers: bu5hm4n, Hermet, woohyun, devilhorns

Reviewed By: Hermet

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T6326

Differential Revision: https://phab.enlightenment.org/D6322
2018-07-04 10:53:09 +09:00
Youngbok Shin f6acd6f9e4 Evas Textblock: Don't convert <br/> to <ps/> after changing text
Summary:
It was only happened when legacy newline is enabled. By default,
legacy newline is enabled. As I know, legacy newline option has
to change textblock's internal behavior. But, it shouldn't change
the given original text. It fixes T3399.

Test Plan: A Test case is included in Evas test suite.

Reviewers: Jaehyun_Cho, z-wony, tasn, woohyun, herdsman, Blackmole, devilhorns

Subscribers: #committers, zmike, raster, cedric, jpeg

Tags: #efl

Maniphest Tasks: T3399

Differential Revision: https://phab.enlightenment.org/D3874
2018-07-02 18:33:45 +03:00
Daniel Hirt 27c677f1e0 Evas textblock: clear ellipsis item at start of layout
The ellipsis item was tracked so it can be inserted at the correct
position. It was not cleared properly, leading to a randomly failing
test suite.

Actually, it seems that there is no need to even store the ellipsis item
as the object data, so it was also moved to be in the layout context,
instead.

A special shoutout to ManMower for lending me his machine, as the test
suite didn't fail on mine.

Fixes T6986

@fix
2018-07-02 12:50:14 +03:00
Daniel Hirt 3db6b94ec8 Evas font: simplify fallback parsing step
@fix
2018-07-02 12:49:18 +03:00
Youngbok Shin a882235fce Evas font: add comparison for fallbacks in evas_font_desc_cmp()
Summary:
fallbacks string also has to be compared to load proper fdesc.
If a font which does not have fallback fonts is loaded,
fallback fonts can't be appended to the same font.
@fix

Reviewers: tasn, woohyun, herdsman, zmike, devilhorns

Reviewed By: herdsman

Subscribers: #committers, zmike, raster, Blackmole, z-wony, cedric, jpeg

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D3707
2018-07-02 11:08:30 +03:00
Youngbok Shin baf3a2092a Evas font: fix inifinite loop problem for fallback fonts
Summary:
When multiple fallback fonts was passed to evas_font_load(),
the while loop could run forever. I think it is never tested.
@fix

Test Plan:
Set the following textblock style and set it to a textblock object.
"font=Sans font_fallbacks=Ubuntu,Inconsolata,BlahBlah font_size=..."

Run and see application is in stuck.

Reviewers: tasn, woohyun, herdsman, devilhorns

Subscribers: #committers, zmike, raster, Blackmole, z-wony, cedric, jpeg

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D3703
2018-07-02 11:08:30 +03:00
Hermet Park 208c579e0d evas map: check render condition more elaborately.
Summary:
Ok, this was started from a bug that canvas getting not be updated.
If map is just disabled, at least one frame in the map region should be redrawn
So I added a condition 'map changed' in the render even though map is off
status. Now, I got a performance regression issue because it makes dirty
region is always true for the map object.

That is a corner case acutally, that object is not rendered but map still
have changed status.

I replaced the condition only if object is changed + map is changed.

At least, my test case works better with this patch.

@fix T6975

Reviewers: #committers, ManMower, devilhorns

Reviewed By: #committers, ManMower

Subscribers: ApB, ManMower, cedric, #committers, zmike

Tags: #efl

Maniphest Tasks: T6975

Differential Revision: https://phab.enlightenment.org/D6429
2018-06-29 09:58:41 +09:00
Mike Blumenkrantz aa9cc3a068 evas: remove ecore init/shutdown calls from everywhere besides evas_main
Summary:
these separate inits and shutdowns make it impossible to effectively control
ecore's lifetime which makes evas_shutdown unreliable as objects may be
destroyed at any point

ref T7052
Depends on D6475

Reviewers: ManMower, devilhorns

Reviewed By: ManMower, devilhorns

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T7052

Differential Revision: https://phab.enlightenment.org/D6476
2018-06-28 15:03:15 -05:00
Mike Blumenkrantz 5a4fe07415 evas/main: move common shutdown to after ecore shutdown
Summary:
ecore_shutdown will trigger object deletions which require common
components to still be active in order to avoid crashes

ref 3433be343779424c5e030ace30e211298cd060f8
ref T7052

Reviewers: ManMower, devilhorns

Reviewed By: ManMower, devilhorns

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T7052

Differential Revision: https://phab.enlightenment.org/D6475
2018-06-28 14:53:11 -05:00
Derek Foreman 024d38074c evas_render: Make some code easier to read
Summary:
The variable "clean_them" can only ever be EINA_FALSE for much of this
function, but using it as a return value ensures that anyone not
intimately familiar with the code will have to read a lot of code
to figure out that this is so.

Instead, return EINA_FALSE up until the point clean_them can actually
be something else.

No functional change.

Reviewers: devilhorns, zmike

Reviewed By: zmike

Subscribers: cedric, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6464
2018-06-28 13:11:59 -05:00
Mike Blumenkrantz c43850eed4 evas/main: shuffle shutdown order of filters and modules
Summary:
these both deallocate resources which can be needed during ecore_shutdown

ref df652673fe
fix T7052

Reviewers: ManMower, devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T7052

Differential Revision: https://phab.enlightenment.org/D6474
2018-06-28 12:41:13 -04:00
Hosang Kim df652673fe evas: move clearing cows to right place.
Summary:
Evas is child of main loop now, so evas is deleted when main loop is quitted.
In case of not calling evas_free() explicitly by app side, a crash occurs.
So move clearing cows to below ecore_shutdown().

Test Plan:
//Compile with:
//gcc evas_test.c -o evas_test `pkg-config --cflags --libs ecore evas`

#include <Evas.h>
#include <Ecore.h>

Eina_Bool
_timer_cb (void *data)
{
    ecore_main_loop_quit();
    return 0;
}
int
main(int argc, char *argv[])
{

   evas_init();
   Evas *evas = evas_new();
   Evas_Object *obj = evas_object_box_add(evas);
   Evas_Object *rect = evas_object_rectangle_add(evas);
   evas_object_color_set(rect, 255, 255, 255, 255);
   evas_object_resize(rect, 300, 400);
   evas_object_show(rect);

   evas_object_box_append(obj, rect);

   evas_object_show(obj);
   ecore_timer_add(2.0, _timer_cb, NULL);
   ecore_main_loop_begin();

   evas_shutdown();
   return 0;
}

Reviewers: devilhorns, cedric, jpeg, id213sin, woohyun, zmike

Reviewed By: zmike

Subscribers: cedric, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6346
2018-06-27 07:50:31 -04:00
Mike Blumenkrantz bea602f258 evas/thread_render: improve thread safety
this resolves some invalid read/write operations between threads without locking
and also attempts to improve thread-related behavior after fork() calls

ref T7027

Differential Revision: https://phab.enlightenment.org/D6370
2018-06-25 15:17:14 -04:00
Hermet Park 28aed68e7f evas canvas: add exceptional case.
Summary:
parent_container should have eina_false as given null parent
in order to avoid call vg_node_changed() for parent.

Reviewers: #committers, devilhorns, zmike

Reviewed By: #committers, zmike

Subscribers: cedric, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6387
2018-06-25 06:49:49 -04:00
Mike Blumenkrantz 3db3fbaeeb evas_vg_node: do not propagate node changed callbacks for invalidated objects
Summary: this callback is triggered on the parent object. invalidated objects have no parent.

Reviewers: bu5hm4n, devilhorns, Hermet

Reviewed By: Hermet

Subscribers: Hermet, cedric, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6335
2018-06-25 13:48:16 +09:00
Mike Blumenkrantz b60a9999ca evas/cpu: rework SIGILL code for non-x86 (and fix windows build)
Summary:
the previous patch which improved this code for x86 archs broke compiling
for non-x86 and, coincidentally, for windows builds on x86 due to some
unusual #ifdef blocks

this attempts to restore handling on non-x86 and adds additional #ifdefs for
functions which did not build on windows due to removed code

ref 6b1ab3cd9c

Reviewers: ManMower, devilhorns

Reviewed By: ManMower

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T7062

Differential Revision: https://phab.enlightenment.org/D6368
2018-06-22 14:18:43 -04:00
Mike Blumenkrantz b7cb24c323 evas: switch to EFL_EVENT_INVALIDATE for event grabber sub-object deletion
Summary:
this requires the parent of the deleted object to be reachable, so use the
invalidate callback as this is the last point during which it's possible to
retrieve a parent object

ref T7030

Depends on D6320

Reviewers: bu5hm4n, Hermet, woohyun, devilhorns

Reviewed By: bu5hm4n

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T7030

Differential Revision: https://phab.enlightenment.org/D6321
2018-06-19 13:40:52 -04:00
Hermet Park 013dfe7013 evas map: fix a typo. 2018-06-19 10:50:50 +09:00
Hermet Park 803025f919 evas vg: add warning msgs for users.
Since usage has been changed under the beta version,
Some users may keep the old-usage that breaks the vg behavior now.

For their information, vg prints messages in case of breaks.
2018-06-19 08:36:00 +09:00
Derek Foreman 6b1ab3cd9c evas_cpu: Avoid SIGILL in evas startup on x86
Summary:
To determine if a system supports SIMD instructions, the cpuid facility
should be used.  However, for 15+ years EFL has been trapping SIGILL,
then attempting to execute these intstructions.

Continuing after SIGILL is explicitly undefined behaviour and can never
safely be relied upon - it is possible the CPU will respond to the
unknown instruction in an upredictable way and the program will not
continue correctly.  Even if it hasn't caused problems before, there's
no reason to believe a processor released in the future won't behave
differently.

Lately we've had a couple of bug tickets where SIGILL appears to cause
problems at a system level as well, but there seems little point in
chasing those problems down as we shouldn't even be doing this in the
first place.

ref T6711
ref T6989

We still rely on SIGILL in a few configurations where eina_cpu doesn't
know how to query features properly (powerpc, sparc, and non linux
ARM configurations).  Hopefully someone with expertise on those
platforms can follow up and we can remove this entirely.

Note: MMX2 appears to not really be a thing, and is instead provided by
both 3DNow! and SSE.  We already conflate it with SSE in other parts of
evas, so I've just used SSE here to test for its presence.
Depends on D6313

Reviewers: devilhorns, zmike

Reviewed By: zmike

Subscribers: cedric, #committers, zmike

Tags: #efl

Maniphest Tasks: T6989, T6711

Differential Revision: https://phab.enlightenment.org/D6314
2018-06-18 15:12:54 -05:00
Derek Foreman 1d8a93aa78 evas_cpu: Refactor checks that use eina_cpu_features_get
Summary: Minor code simplification.

Reviewers: devilhorns, zmike

Reviewed By: zmike

Subscribers: cedric, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6313
2018-06-18 15:12:36 -05:00
Mike Blumenkrantz 46941804a0 Revert "evas: handle event COW modification when COW is already active"
Summary:
This reverts commit cd6b890c73.

this resolves complaints from a safety check in the debug profile,
but it seems more likely that the safety check is bogus and should be
removed rather than making this code more complex

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6283
2018-06-15 11:22:38 -04:00
Marcel Hollerbach 81519b195f evas: make objects again delete correctly
Summary:
what here was done was fundamentally wrong, deleting the pd->object
field of a evas object after a efl_del / evas_object_del is completly
wrong. evas object lifetimes are controller with eo_manual_free, this
means, they are still alive, even after you called evas_object_del on
them. removing pd->object results in eo_menual_free calls to NULL
objects and leaking the object carrying the private data. Overall,
breaking this pd->object field and unsetting it is a very bad idea, as
its the only way that evas cleansup the object correctly.
This brings down the number of ui related leaked objects on shutdowns to
0. (YEY :))
This also fixes weird error messages on app shutdown.

fixes T6964

Reviewers: devilhorns, zmike

Reviewed By: zmike

Subscribers: cedric, #committers, zmike

Tags: #efl

Maniphest Tasks: T6964

Differential Revision: https://phab.enlightenment.org/D6290
2018-06-14 14:23:28 -05:00
Hermet Park c8c0dbb32b evas vg: prevent a corner-case crash.
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.
2018-06-15 01:11:26 +09:00
Hermet Park dc729e8ece evas vg: code refactoring.
No logic changes.

I know this is not a good case in alpha freeze.
but code was too dirty, need more polishing.
2018-06-14 23:31:03 +09:00
Hermet Park ee2ca991fc evas vg: fix another memory leak
@fix
2018-06-14 22:08:51 +09:00
Hermet Park a7e4c67039 evas vg: fix broken morphing(interpolation)
efl_gfx_path itself took care of efl_gfx_shape data but its heirarchy was
conceptually wrong. Even efl_gfx_shape is mixing the efl_gfx_path...

Damend design...

Some of derived classes of efl_gfx_path (i.e. Vg.Node and Vg.Container) are
none of the Path acutally. They are just mixing Path's interpolation interface.

So, Here patch changes VG.Node to stop calling the super's interpolate method
and Vg.Shape to call both super -gfx_shape and vg_node- interpolate method.

@fix T6996
2018-06-14 20:02:15 +09:00
Xavi Artigas a5f0e2ecdf evas: Remove unnecessary rotation when saving
Summary:
At some point this code stopped being necessary. The image data is already
rotated and width and height match it, so no need to rotate it again
(which produced warnings and incorrect behaviour)

Fixes T5841

Test Plan: This fixed examples/evas_images{2,4,5} which were failing before.

Reviewers: bu5hm4n, zmike, devilhorns

Reviewed By: zmike

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T5841

Differential Revision: https://phab.enlightenment.org/D6259
2018-06-13 13:42:59 -04:00
Mike Blumenkrantz cd6b890c73 evas: handle event COW modification when COW is already active
Summary:
enabling write on a COW which is already writing is a user error,
which can occur during object invalidate due to reuse of a helper function.
by adding an extra param containing the COW data, this scenario can be avoided

fix T7005

Reviewers: bu5hm4n, segfaultxavi, devilhorns

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T7005

Differential Revision: https://phab.enlightenment.org/D6273
2018-06-13 11:33:21 -04:00
Xavi Artigas 2cf05bac09 evas: Fix small string leak
Summary:
sscanf("%ms", &encoding) allocates memory which must be freed.
It is done in the general case, but not if the image data map fails and the
code jumps to the no_pixels: label.

Reviewers: zmike, bu5hm4n

Reviewed By: zmike

Subscribers: cedric, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6258
2018-06-12 10:51:53 -04:00
Alastair Poole 8e64746a44 ecore_evas: fix crash on free of smart data.
pd is NULL here, adds a check before attempt
to read from pd.

@fix T6974
2018-06-12 15:19:12 +01:00
Hermet Park f4851d311f evas vg: clean up all the duplicated children by container properly.
So, here is the first-aid, but the last patch for recovering basic vector
rendering. All vg nodes duplicated by container would be constructed without
a parent, they need to get unref() by container when container is freed.

Here code takes deal with it on the invalidation time.
2018-06-12 19:08:35 +09:00
Hermet Park 78d1fdd746 evas vg: get rid of memory leak.
alloc mem only if it didn't alloc'd yet.

@fix
2018-06-12 11:27:51 +09:00
Hermet Park 5733994b02 evas vg: fix wrong obj deletion.
Cached roots are constructed out of canvas.
Means, they have no parents, generated efl_add_ref()
which requests to call efl_unref() instead of explicit deletion.
2018-06-11 20:10:07 +09:00
Hermet Park ca3fb6bf94 evas vg: fix broken vg rendering.
This fixes vg to connect node tree properly on copying nodes.

Vector rendering was broken when vg cache tries to reconstruct the scene-graph
tree on copying from the original cached one. Exactly, nodes lost parents on
copying. Here it fixes the lost links of the scene-graph tree.

@fix T6993
2018-06-11 17:18:36 +09:00
Hermet Park af565966e8 canvas vg: move a comment to right place.
no any logic changes.
2018-06-07 19:14:30 +09:00
Hermet Park 590b52ce75 evas map: an alternative patch for map rendering issue.
This is an alternative patch for 9fcd03952e.

Since canvas map rendering sequence is quite complex,
Not easy to estimiate the logic sequence by all scenarios.

The brings me to fix the code case by case.
2018-06-07 14:50:41 +09:00
Hermet Park 72ce12e550 Revert "evas canvas: remove unused goto tag."
This reverts commit b2f85bb9ed.

this is a subsquent patch for the previous revert:
77684dc53a

ps. JackDaniel saved efl world from a guy who broke the system and ran away...
2018-06-05 21:38:01 +09:00
Hermet Park 77684dc53a Revert "evas: fix a map rendering problem."
This reverts commit 9fcd03952e.

Just noticed from ManMower, this caused a side-effect that drops
enlightenment performance. I need to check it seriously then
decide again how this patch to be.
2018-06-05 21:01:15 +09:00
Xavi Artigas 2265f2f8f6 Do not consider the Evas_Vg API as BETA anymore
Summary:
It has been widely used for quite some time now.
Fixes T6889

Test Plan:
Manually built the evas-vg-simple.c and evas-vg-batman.c examples after
removing the manual define of EFL_BETA_API_SUPPORT and EFL_EO_API_SUPPORT
that they have at the top.

Reviewers: ajwillia.ms, zmike

Reviewed By: zmike

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T6889

Differential Revision: https://phab.enlightenment.org/D6230
2018-05-30 07:33:01 -04:00
Hermet Park b2f85bb9ed evas canvas: remove unused goto tag. 2018-05-30 13:41:41 +09:00
Marcel Hollerbach fb4eebde95 evas_object_box: adjust to recent EFL_EVENT_DEL changes
Summary:
the same change as the one for evas table, just for box.

Depends on D6228

Reviewers: cedric, zmike, stefan_schmidt

Reviewed By: zmike

Subscribers: #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6229
2018-05-29 12:24:55 -04:00
Marcel Hollerbach 70ab165a6d evas_focus: adjust to recent EFL_EVENT_DEL changes
Summary:
when focus events have been emitted the smart parent was persistent, now
its not anymore, lets restore this behaviour

Depends on D6227

Reviewers: cedric, zmike, stefan_schmidt

Subscribers: #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6228
2018-05-29 12:24:53 -04:00
Marcel Hollerbach 6551a954f0 evas_clip: fix current EFL_EVENT_DEL event changes
Summary:
Before the parent was persistent when the intersept function and events
for clipper changes have been called. Lets get back to this behaviour.

Depends on D6226

Reviewers: cedric, zmike, stefan_schmidt

Reviewed By: zmike

Subscribers: #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6227
2018-05-29 12:24:44 -04:00
Marcel Hollerbach 23aab73c2f evas: be less error prone
Summary:
Dont spin infinitly when the refcount accidently is already < 0.

Depends on D6225

Reviewers: zmike, cedric, stefan_schmidt, #committers

Reviewed By: zmike, #committers

Subscribers: cedric, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6226
2018-05-29 12:24:36 -04:00
Marcel Hollerbach dda7038019 evas_object_table: adjust to recent EFL_EVENT_DEL changes
Summary:
EFL_EVENT_DEL is wrong here, as the callback uses a parent, which is
gone at the time of EFL_EVENT_DEL.

Reviewers: zmike, cedric, stefan_schmidt

Reviewed By: zmike

Subscribers: cedric, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6225
2018-05-29 12:24:31 -04:00
Hermet Park be34971af8 evas render: remove compile warnings.
Some bunch of code is unused when RENDCACHE is disabled.
Migrated them into RENDCACHE scope. No logical changes actually.
2018-05-29 16:28:35 +09:00
Cedric BAIL 774ae32108 evas: make smart object deletion more robust to bad child behavior. 2018-05-24 16:02:21 -07:00