platform/upstream/efl.git
8 years agoevas: handling memory leak on realloc failure.
Srivardhan Hebbar [Wed, 21 Oct 2015 20:35:17 +0000 (13:35 -0700)]
evas: handling memory leak on realloc failure.

Summary: Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: cedric

Differential Revision: https://phab.enlightenment.org/D3212

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
8 years agoefl: fix copy & paste typo while parsing SVG elliptical arc command.
Cedric BAIL [Wed, 21 Oct 2015 18:11:39 +0000 (11:11 -0700)]
efl: fix copy & paste typo while parsing SVG elliptical arc command.

@fix

CID 1328426

8 years agoee-wayland: remove attempt to optimize canvas resizing
Mike Blumenkrantz [Wed, 21 Oct 2015 18:06:47 +0000 (14:06 -0400)]
ee-wayland: remove attempt to optimize canvas resizing

in the case of operations which change framespace, rejecting resizes
at this point will cause the canvas to fail at resizing and result in a
partially-rendered canvas; the real canvas geometry must be calculated by
running the entire function in order to determine whether the resize is valid

fixes toggling borderless state of windows

8 years agoeolian: Test recognition of struct types used in methods
Vitor Sousa [Wed, 21 Oct 2015 17:14:22 +0000 (18:14 +0100)]
eolian: Test recognition of struct types used in methods

Summary:
Add code to unit test to check if Eolian correctly recognize a struct
name as a struct type when it is used in a method.

Add new method to struct.eo to create this test.
Update struct_ref.c accordingly.

Reviewers: tasn, q66

Differential Revision: https://phab.enlightenment.org/D3213

8 years agoeo - oops remove warning cpp i accidentally put in!
Carsten Haitzler (Rasterman) [Wed, 21 Oct 2015 13:27:06 +0000 (22:27 +0900)]
eo - oops remove warning cpp i accidentally put in!

8 years agoeo resolv cache - remove params passed to resolv func for efficiency
Carsten Haitzler (Rasterman) [Wed, 21 Oct 2015 13:23:18 +0000 (22:23 +0900)]
eo resolv cache - remove params passed to resolv func for efficiency

we pass both the callcache and the op id - both are static and filled
in at runtime, so merge them into the same struct. this should lead to
better alignment/padding with the offset array and the next slot and
op fields, probably saving about 4-8 bytes of rame per method with no
downsides. also pass in only cache ptr, not both cache ptr and opid -
less passing of stuff around and should be better.

8 years agoedje: add edje signal emit about swallow, text
Jaehwan Kim [Wed, 21 Oct 2015 12:51:54 +0000 (21:51 +0900)]
edje: add edje signal emit about swallow, text

Add the edje signal "swallow", "unswallow", "text,set", "text,unset".
In edc file, the part name take a role of source.
If the layout should be changed when any object is swallowed or any
text is set, use this signal.

@feature

8 years agoephysics: add missing break in switch to avoid override variable with other cases
Stefan Schmidt [Wed, 21 Oct 2015 12:32:44 +0000 (14:32 +0200)]
ephysics: add missing break in switch to avoid override variable with other cases

Due to the missing break we would fall into the next case here which might lead
to variables overridden with wrong values.

CID: 1261441, 1261440, 1261438

8 years agoemile: remove dead code
Stefan Schmidt [Wed, 21 Oct 2015 12:23:08 +0000 (14:23 +0200)]
emile: remove dead code

This seems to come from some intention to fetch dh from openssl somewhow but
it was never implemented. fh always stays 0 since its init and thus we can
remove the code it guards.

CID: 1288930

8 years agoeo - shut clang up because otherwise i have to argue with peolpe
Carsten Haitzler (Rasterman) [Wed, 21 Oct 2015 12:01:59 +0000 (21:01 +0900)]
eo - shut clang up because otherwise i have to argue with peolpe

so. clang is wrong. end of story. it complains that i should add
braces to:

static Eo_Call_Cache ___callcache = { 0 };

WRONG. that is correct c99. 100%. you can add more {}'s and init every
field separately like {{0},{0},{0}} etc. or make it 1 or any value -
it doesn't matter... clang complains. clang is wrong. plain and
simple. this warning should just never exist. it is pointless.

but... peolpe won't shut up about clang warnings until i "fool" clang
into being silent by assuming the default 0 value of static storage.

this silences clang

8 years agoefl - eo - massively improve eo cal resolv and data scope get with cache
Carsten Haitzler (Rasterman) [Wed, 21 Oct 2015 11:06:23 +0000 (20:06 +0900)]
efl - eo - massively improve eo cal resolv and data scope get with cache

BEWARE! this breaks eo ABI. _eo_call_resolve and _eo_data_scope_get
are 2 of the biggest cpu users in eo. they easily consume like 10-15%
cpu between them on tests that drive a lot of api - like simply
scrolling a genlist around. this is a lot of overhead for efl. this
fixes that to make them far leaner. In fact this got an overall 10%
cpu usage drop and that includes all of the actual rendering, and code
work, so this would drop the eo overhead of these functions incredibly
low. using this much cpu just on doing call marshalling is a bug and
thus - this is a fix, but ... with an abi break to boot. more abi
breaks may happen before release to try and get them all in this
release so we don't have to do them again later.

note i actually tested 4, 3, 2, and 1 cache slots, and 1 was the
fastest. 2 was very close behind and then it got worse. all were
better than with no cache though.

benchmark test method:

export ELM_ENGINE=gl
export ELM_TEST_AUTOBOUNCE=1

while [ 1 ]; do sync; sync; sync; time elementary_test -to genlist;
sleep 1; done

take the 2nd to the 8th results (7 runs) and total up system and user
time. copmpare this to the same without the cache. with the cache cpu
time used is 90.3% of the cpu time used without - thus a win. at least
in my tests.

@fix

8 years agoefl - edje - fix edje calc to avoid eo calls when object doesnt change
Carsten Haitzler (Rasterman) [Wed, 21 Oct 2015 11:01:26 +0000 (20:01 +0900)]
efl - edje - fix edje calc to avoid eo calls when object doesnt change

in many cases edje dumbly calls eo_do() or evas_object_xxxx on objects
to set up their porperties when the part never uses that thing at al -
eg filters. the obnject never had filters and will not have them n3ext
- why always set filter to null every time? skip when not needed for
speedups.

so this fixes over-zealous calling whihc adds overhead that is not
needed causing battery drain and cpu usage, heat creation etc. etc.

@fix

8 years agoefl/gfx: fix svg path parsing logic.
Subhransu Mohanty [Fri, 28 Aug 2015 01:12:44 +0000 (10:12 +0900)]
efl/gfx: fix svg path parsing logic.

1. according to svg path specification, path string may or may not contain ',' as the separator
with current parsing logic we were expecting a ',' after each segment.
2. relative cubic bezier parsing was wrong as we were not adding the current value to all 4 points.
3. refactored the parse_pair, parse_six and parse_quad to use same helper function
path1: "M7.279,2h35.442C45.637,2,48,4.359,48,7.271v35.455C48,45.639,45.637,48,42.723,48H7.279C4.362,47.997,2,45.639,2,42.727V7.271C2,4.359,4.362,2,7.279,2z"
path2: "M-2.073-7h36.147C36.796-7,39-4.793,39-2.073v36.146C39,36.796,36.796,39,34.074,39H-2.073C-4.793,39-7,36.796-7,34.072V-2.073C-7-4.793-4.793-7-2.073-7z"

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
8 years agoecore-wayland: plug some trivial leaks
Mike Blumenkrantz [Tue, 20 Oct 2015 21:51:22 +0000 (17:51 -0400)]
ecore-wayland: plug some trivial leaks

8 years agoector: handling memory leak on error.
Srivardhan Hebbar [Tue, 20 Oct 2015 19:27:01 +0000 (12:27 -0700)]
ector: handling memory leak on error.

Summary:
Memory leak was caused by using the USE macro. So move the macro before
doing any allocation.

Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: cedric

Differential Revision: https://phab.enlightenment.org/D3183

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
8 years agoecore_x: removing useless assignment variable.
Srivardhan Hebbar [Tue, 20 Oct 2015 19:24:49 +0000 (12:24 -0700)]
ecore_x: removing useless assignment variable.

Summary:
Assigning to NULL has no effect in the function calling this. So changed it to void.
Some compiler complain about this kind of construct. It is better to use the (void)
construct for silencing unused parameter with different kind of configure option.

Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: cedric

Differential Revision: https://phab.enlightenment.org/D3180

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
8 years agoevas: fix memory leak.
Subodh Kumar [Tue, 20 Oct 2015 18:51:17 +0000 (11:51 -0700)]
evas: fix memory leak.

Summary:
Fix memory leak

Delimiter string is being saved using
eina_stringshare_replace without any del or free
when object is deleted.

@fix

Test Plan: NA

Reviewers: cedric, tasn, herdsman

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3201

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
8 years agoee-wayland: use frame callbacks exclusively to determine render timing
Mike Blumenkrantz [Tue, 20 Oct 2015 20:41:28 +0000 (16:41 -0400)]
ee-wayland: use frame callbacks exclusively to determine render timing

when running in a wayland compositor, the ideal mode of operation is to
only prepare/send frames when the compositor has finished with the previous
frame

to achieve this, manual rendering can be toggled upon creating and completing
a frame callback, ensuring that a canvas never has multiple pending buffers at
any given time

fix T2784

8 years ago ecore fb: Unbreak ecore_evas_fb.
Chidambar Zinnoury [Tue, 20 Oct 2015 16:58:18 +0000 (18:58 +0200)]
 ecore fb: Unbreak ecore_evas_fb.

 The ecore_evas_fb module uses ecore_fb_ts_* functions which are only available to EFL internals and not for the general API.

 However, EAPI not being defined in ecore_fb_private.h made the symbols not being exported at all, which in return made execution-time linking not finding them and thus failing.

8 years ago ecore fb: We shall look for the Ecore_Fb.h header only where needed.
Chidambar Zinnoury [Tue, 20 Oct 2015 16:56:47 +0000 (18:56 +0200)]
 ecore fb: We shall look for the Ecore_Fb.h header only where needed.

8 years agoedje - fix some horrible misleading indenting in edje calc.
Carsten Haitzler (Rasterman) [Tue, 20 Oct 2015 09:07:21 +0000 (18:07 +0900)]
edje - fix some horrible misleading indenting in edje calc.

just whitespace fixups

8 years agoefreet: use eina_file_mkstemp() for portability and fix a bug on Windows
Vincent Torri [Tue, 29 Sep 2015 21:37:46 +0000 (23:37 +0200)]
efreet: use eina_file_mkstemp() for portability and fix a bug on Windows

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
8 years agoecore_exe: terminate threads also in destructor
Vincent Torri [Sun, 27 Sep 2015 08:25:33 +0000 (10:25 +0200)]
ecore_exe: terminate threads also in destructor

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
8 years agoecore-wayland: only do deferred shell surface creation when a surface exists
Mike Blumenkrantz [Mon, 19 Oct 2015 20:20:45 +0000 (16:20 -0400)]
ecore-wayland: only do deferred shell surface creation when a surface exists

8 years agoecore-wayland: defer shell surface creation for windows if shell is not bound
Mike Blumenkrantz [Mon, 19 Oct 2015 20:13:50 +0000 (16:13 -0400)]
ecore-wayland: defer shell surface creation for windows if shell is not bound

in the case where a surface is created before the compositor binds its shell(s),
a shell surface would never be created

fixes case where internal windows would not create frames in enlightenment

@fix

8 years agoevas textblock: fix memory leak
Subodh Kumar [Mon, 19 Oct 2015 18:34:38 +0000 (11:34 -0700)]
evas textblock: fix memory leak

Summary:
Fix memory leak

Delimiter string is being saved using
eina_stringshare_replace without any del or free
when object is deleted.

@fix

Test Plan: N/A

Reviewers: tasn, herdsman

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3175

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
8 years agoecore_x: removing useless assignment.
Srivardhan Hebbar [Mon, 19 Oct 2015 18:24:49 +0000 (11:24 -0700)]
ecore_x: removing useless assignment.

Summary:
The assigned value has no effect outside the function. So removing it.

Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: cedric

Differential Revision: https://phab.enlightenment.org/D3181

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
8 years agoecore_x: handling realloc failure.
Srivardhan Hebbar [Mon, 19 Oct 2015 18:21:22 +0000 (11:21 -0700)]
ecore_x: handling realloc failure.

Summary:
If realloc fails, lst would be NULL. So handling it.
Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: cedric

Differential Revision: https://phab.enlightenment.org/D3182

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
8 years agoector: removing useless assignement.
Srivardhan Hebbar [Mon, 19 Oct 2015 18:17:22 +0000 (11:17 -0700)]
ector: removing useless assignement.

Summary:
Null assignment has no effect in the caller function. So removed it.

Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: cedric

Differential Revision: https://phab.enlightenment.org/D3184

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
8 years agoedje: comparision with non-scaled min values issue fix.
Shilpa Singh [Mon, 19 Oct 2015 18:12:23 +0000 (11:12 -0700)]
edje: comparision with non-scaled min values issue fix.

Summary:
In a different scaling environment, wrong comparison of min values causes resize issue as original size is compared instead of scaled size.

Signed-off-by: Shilpa Singh <shilpa.singh@samsung.com>
Signed-off-by: Subodh Kumar <s7158.kumar@samsung.com>
@fix

Test Plan:
Create a layout with some min size and swallow a resizable layout inside the layout.
the parent layout will not expand even when the height has crossed its min size.

Reviewers: cedric, tasn, raster

Subscribers: subodh6129

Differential Revision: https://phab.enlightenment.org/D3185

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
8 years agoedje: fix memory leak on realloc.
Srivardhan Hebbar [Mon, 19 Oct 2015 18:08:13 +0000 (11:08 -0700)]
edje: fix memory leak on realloc.

Summary: Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: cedric

Differential Revision: https://phab.enlightenment.org/D3186

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
8 years agoevas table: fix miscalcuation in cells with span and padding
Jee-Yong Um [Mon, 19 Oct 2015 18:01:22 +0000 (11:01 -0700)]
evas table: fix miscalcuation in cells with span and padding

Summary:
In evas table that homogeneous mode is turned off,
the size of items in cells, whose rowspan or colspan is larger than 1
and horizontal or vertical padding exists, are miscalculatd.

T2655

@fix

Test Plan: elementary_test "Table Padding"

Reviewers: Hermet, cedric

Subscribers: cedric, DaveMDS, Hermet

Differential Revision: https://phab.enlightenment.org/D3192

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
8 years agoevas: fix memory leak
perepelits.m [Mon, 19 Oct 2015 18:00:22 +0000 (11:00 -0700)]
evas: fix memory leak

Summary:
Fix of memory leak in evas_3d_utils.c

@fix

Reviewers: raster, Hermet, cedric

Reviewed By: cedric

Subscribers: artem.popov

Differential Revision: https://phab.enlightenment.org/D3196

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
8 years agoEvas GL shaders: Simplify a bit the shaders code v1.16.0-beta2
Jean-Philippe Andre [Mon, 19 Oct 2015 11:04:20 +0000 (20:04 +0900)]
Evas GL shaders: Simplify a bit the shaders code

Following raster's change, the Program_Source struct is useless.
This is a big commit, again, but really all is auto-generated.

8 years agoelua: remove non-portable lconv fields (breaks windows)
Daniel Kolesa [Mon, 19 Oct 2015 10:52:03 +0000 (11:52 +0100)]
elua: remove non-portable lconv fields (breaks windows)

8 years agoEvas GL: Try to fix automated tests
Jean-Philippe Andre [Mon, 19 Oct 2015 10:31:10 +0000 (19:31 +0900)]
Evas GL: Try to fix automated tests

I forgot the #ifdef in the shaders. This might be it. @stefan,
try again please.

8 years agorelease: Update NEWS and bump version for 1.16.0-beta2 release
Stefan Schmidt [Mon, 19 Oct 2015 09:36:51 +0000 (11:36 +0200)]
release: Update NEWS and bump version for 1.16.0-beta2 release

8 years agoevas gl common - remove unused struct fields from shader src to save mem
Carsten Haitzler (Rasterman) [Mon, 19 Oct 2015 08:06:06 +0000 (17:06 +0900)]
evas gl common - remove unused struct fields from shader src to save mem

we use a bit more memory than we need by having unused fields for
shaders. the old binary data ptrs and size fields we just have not
used for years now as we dont compile in shader binaries anymore as no
living drivers need this anymore. so this removes that with no actual
side-effects.

8 years agoevas gl - fix big endian fully by adding a host of new img shaders
Carsten Haitzler (Rasterman) [Sun, 18 Oct 2015 09:45:11 +0000 (18:45 +0900)]
evas gl - fix big endian fully by adding a host of new img shaders

no shortcuts. we used the same img sharder for pixles as for native
surf. so need new shaders to do the swiszzling. add them all,
generation scripts metadata and enums etc.

@fix (along with previous 3 commits)

8 years agoevas bigendian fix - only fix img shaders as only these src pixels
Carsten Haitzler (Rasterman) [Sun, 18 Oct 2015 06:49:23 +0000 (15:49 +0900)]
evas bigendian fix - only fix img shaders as only these src pixels

8 years agoevas gl fix color on bigendian with gl engine
Carsten Haitzler (Rasterman) [Sun, 18 Oct 2015 03:49:11 +0000 (12:49 +0900)]
evas gl fix color on bigendian with gl engine

this fixes rendering on ppc (bigendian) where we have thnigs swizzled
oddly. not bgra -> argb but rgba -> grab ...

so generate a bigendian shader file and use if on bigendian.

this should fix T2721

it fixes it in the visual screenshots i can get remotely.

8 years agoeo - another 1.5 percent speedup in eo_bench eo_do by removing err handl
Carsten Haitzler (Rasterman) [Sat, 17 Oct 2015 02:42:46 +0000 (11:42 +0900)]
eo - another 1.5 percent speedup in eo_bench eo_do by removing err handl

so we do a bit of error handling like does a stack fail to allocate,
does setting the tls var fail, have the stack frames been nulled or
not allocated, etc. - these acutally cost every call because they mean
some extra compare and branches, but ore because they cause a lot fo
extra code to be generated, thus polluting instruction cache with code
and cacheline fetches of code that we rarely take - if ever.

every if () and DBG, ERR etc. does cost something. in really hotpath
code like this, i think it's best we realize that these checks will
basically never be triggered, because if a stack fails to grow... we
likely alreayd blew our REAL stack for the C/C++ side and that can't
allocate anymore and has already just crashed (no magic message there -
just segv). so in this case i think this checking is pointless and
just costs us rather than gets us anything.

8 years agoevas - clean if check to be a single return point for clarity
Carsten Haitzler (Rasterman) [Sat, 17 Oct 2015 02:19:06 +0000 (11:19 +0900)]
evas - clean if check to be a single return point for clarity

if (a) return;
if (b) return;

->

if ((a) || (b)) return;

8 years agoecore-evas-wayland: add frame callback listener during render
Mike Blumenkrantz [Fri, 16 Oct 2015 19:51:06 +0000 (15:51 -0400)]
ecore-evas-wayland: add frame callback listener during render

when a render occurs, frame callbacks must be managed in order to ensure
successful rendering for future frames. the best place to do this is in the
engine here, since this is the lowest-level place which has access to both
the wl_surface as well as the evas rendering state

ref T2784

8 years agoRevert "ecore-wayland: Redo window animators to not use Custom source animators"
Mike Blumenkrantz [Fri, 16 Oct 2015 19:49:30 +0000 (15:49 -0400)]
Revert "ecore-wayland: Redo window animators to not use Custom source animators"

This reverts commit bd83d4c03ab9f6f6ae225976b9595a1dfde61237.

adding an animator (and then not managing its ticks) causes the animator
to fire constantly. in this case, it was causing 100% cpu usage and forcing a
compositor re-render for every frame regardless of damages

8 years agoEo do: Reuse stack fetching across eo functions.
Tom Hacohen [Fri, 16 Oct 2015 15:23:48 +0000 (16:23 +0100)]
Eo do: Reuse stack fetching across eo functions.

This causes a significant speed up (around 10% here) and is definitely
worth it. The way it's done lets the compiler cache the value across
different eo_do calls, and across the parts of eo_do. Start and end.

This breaks ABI.

8 years agoEo do: optimise getting the thread call stack for the main loop thread.
Tom Hacohen [Fri, 16 Oct 2015 11:21:25 +0000 (12:21 +0100)]
Eo do: optimise getting the thread call stack for the main loop thread.

This may look like an insignificant change, but it doubles the speed of
this function, and since this function is called so often, it actually
improves my benchmarks by around 8%.

8 years agoEo: Move mainloop checks inside Eo.
Tom Hacohen [Fri, 16 Oct 2015 12:01:01 +0000 (13:01 +0100)]
Eo: Move mainloop checks inside Eo.

This breaks ABI in a harmless way, and it will give us the ability to
drastically improve Eo in the future without breaking ABI again, thus
allowing us to declare Eo stable for this release if we choose to.

8 years agoEo events: Add a struct member marking if it's a legacy event or not.
Tom Hacohen [Fri, 16 Oct 2015 10:42:37 +0000 (11:42 +0100)]
Eo events: Add a struct member marking if it's a legacy event or not.

My previous patch to this piece of code
(37f84b7e966372384e2dfe5d191a6f907a17962e), caused a significant
performance regression. This is such a hot path, that even accessing the
strings when we don't have to slows things down drastically. It makes
more sense to just store it in the structure.

This commit breaks ABI (though most people probably won't even need to
recompile anything else because of the memory layout).
It was discussed on IRC and was decided this is a big enough issue to
warrant a fix during the freeze.

@fix

8 years agoEvas GL: SW engine CID fixes
Jean-Philippe Andre [Fri, 16 Oct 2015 01:48:40 +0000 (10:48 +0900)]
Evas GL: SW engine CID fixes

Following previous changes, there was unreachable code.
- CID 1327421
- CID 1327420

8 years agoEvas: Fix image orientation with GL engine
Jean-Philippe Andre [Thu, 15 Oct 2015 11:09:11 +0000 (20:09 +0900)]
Evas: Fix image orientation with GL engine

Fixes T2738

Not sure what to do if yinvert is true. How to handle image
orientation then? Flip vertically on top of the current orientation?

8 years agoevas - add another layer->evas check in addition to layer
Carsten Haitzler (Rasterman) [Thu, 15 Oct 2015 23:27:10 +0000 (08:27 +0900)]
evas - add another layer->evas check in addition to layer

fixes T7215

8 years agoevas - was missing evlogs for the threaded rendering handling - fix
Carsten Haitzler (Rasterman) [Thu, 15 Oct 2015 08:58:17 +0000 (17:58 +0900)]
evas - was missing evlogs for the threaded rendering handling - fix

8 years agoedje: load - use evas_object_clipees_has instead of evas_object_clipees_get
Amitesh Singh [Thu, 15 Oct 2015 09:34:23 +0000 (15:04 +0530)]
edje: load - use evas_object_clipees_has instead of evas_object_clipees_get

evas_object_clipees_has is far cheaper than evas_object_clipees_get in case of checking if
clipees exist or not. This should improve the performance in case of large set of clipees.

@fix

8 years agoevas: render - use evas_object_clipees_has instead of evas_object_clipees_get
Amitesh Singh [Thu, 15 Oct 2015 09:30:11 +0000 (15:00 +0530)]
evas: render - use evas_object_clipees_has instead of evas_object_clipees_get

evas_object_clipees_has is far cheaper than evas_object_clipees_get in case of checking if
clipees exist or not. This should improve the performance in case of large set of clipees.

@fix

8 years agoTests: use eina_environment_tmp_get()
Vincent Torri [Thu, 15 Oct 2015 05:47:04 +0000 (07:47 +0200)]
Tests: use eina_environment_tmp_get()

8 years agoEvas GL: Add more tests
Jean-Philippe Andre [Thu, 15 Oct 2015 07:02:02 +0000 (16:02 +0900)]
Evas GL: Add more tests

- glReadPixels
- FBO test
- PBuffer test (only GL engine)
- surface formats test (up to depth=24, stencil=8)

8 years agoEvas GL: Add test case for surfaceless contexts
Jean-Philippe Andre [Wed, 14 Oct 2015 13:08:55 +0000 (22:08 +0900)]
Evas GL: Add test case for surfaceless contexts

8 years agoEvas GL: Add EGL_KHR_surfaceless_context since it is supported
Jean-Philippe Andre [Wed, 14 Oct 2015 12:46:34 +0000 (21:46 +0900)]
Evas GL: Add EGL_KHR_surfaceless_context since it is supported

See 3e39bf36389fdbc8a3f845214.
Surfaceless contexts are supported even if the driver does not
support them.

8 years agoEvas GL: Error out on surfaceless make_current with OSMesa
Jean-Philippe Andre [Wed, 14 Oct 2015 12:35:09 +0000 (21:35 +0900)]
Evas GL: Error out on surfaceless make_current with OSMesa

While OSMesa may support surfaceless contexts, we don't support
them yet in the SW engine. Instead of switching to NULL, NULL,
let's error out and do nothing instead.

8 years agoEvas GL: Don't call eglMakeCurrent if already null
Jean-Philippe Andre [Wed, 14 Oct 2015 12:32:11 +0000 (21:32 +0900)]
Evas GL: Don't call eglMakeCurrent if already null

If the current context & surface are already null, avoid
calling eglMakeCurrent again, since it can return an error
(EGL_FALSE but with no error code, thanks Nvidia).

8 years agoecore_imf/wayland: Add NULL check for text_input_manager.
Seunghun Lee [Thu, 15 Oct 2015 05:16:55 +0000 (14:16 +0900)]
ecore_imf/wayland: Add NULL check for text_input_manager.

Summary: this patch fixes crash caused by accessing the text_input_manager in wayland_im_context_add().

Test Plan: N/A

Reviewers: jihoon

Reviewed By: jihoon

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3176

8 years agoevas: no need to compute clippees list if we just want to know if there is any.
Cedric BAIL [Wed, 14 Oct 2015 22:54:41 +0000 (15:54 -0700)]
evas: no need to compute clippees list if we just want to know if there is any.

This is a partial fix for a terrible performance scenario where application take
forever to close with a large number of edje object.

@fix

8 years agoEo: Fix confusing indentation and style.
Tom Hacohen [Wed, 14 Oct 2015 19:42:19 +0000 (20:42 +0100)]
Eo: Fix confusing indentation and style.

8 years agoecore-evas-wayland: Don't use custom animators for frame callbacks
Chris Michael [Wed, 14 Oct 2015 18:56:17 +0000 (14:56 -0400)]
ecore-evas-wayland: Don't use custom animators for frame callbacks

Summary: As we now have per-window timer-based animators in
ecore_wayland for frame callbacks, we no longer should be using Custom
animators to handle surface frame callbacks

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
8 years agoecore-wayland: Redo window animators to not use Custom source animators
Chris Michael [Wed, 14 Oct 2015 18:54:54 +0000 (14:54 -0400)]
ecore-wayland: Redo window animators to not use Custom source animators

Summary: This moves window animators (for frame callbacks) to not use
a custom animator source but rather use a timer-based source. This
also moves animators to be per-window based (in that an animator is
created per-window).

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
8 years agoecore: fix usage eina_condition_timedwait to use relative time instead of absolute...
Cedric BAIL [Wed, 14 Oct 2015 17:57:53 +0000 (10:57 -0700)]
ecore: fix usage eina_condition_timedwait to use relative time instead of absolute time.

This could lead to some very long and unexpected pause as the timeout passed
to eina_condition_timedwait was passed as a absolute time instead of relative.
Hopefully we don't build rocket.

8 years agoevas filter: silent coverity on self assignment
Amitesh Singh [Wed, 14 Oct 2015 15:34:52 +0000 (21:04 +0530)]
evas filter: silent coverity on self assignment

This is a false alarm. Just to make coverity happy, use eo_do
instead of eo_do_ret

CID: 1316017

8 years agoedje_edit: Fix clang warning of unused variables
Chris Michael [Wed, 14 Oct 2015 13:43:12 +0000 (09:43 -0400)]
edje_edit: Fix clang warning of unused variables

Summary: clang reports that these static variables are not being used
anywhere (and grep confirms this), so remove them.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
8 years agoecore-evas-wayland-egl: Fix clang warning about extra parentheses
Chris Michael [Wed, 14 Oct 2015 13:39:52 +0000 (09:39 -0400)]
ecore-evas-wayland-egl: Fix clang warning about extra parentheses

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
8 years agoecore-drm: Add missing field initializers for vt_mode
Chris Michael [Wed, 14 Oct 2015 13:37:20 +0000 (09:37 -0400)]
ecore-drm: Add missing field initializers for vt_mode

Summary: clang reports missing field initializers for usage of vt_mode
structure, so add the missing initializers

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
8 years agoevas: Fix clang warning for missing field 'async' in default_state
Chris Michael [Wed, 14 Oct 2015 13:28:47 +0000 (09:28 -0400)]
evas: Fix clang warning for missing field 'async' in default_state

Evas_Object_Filter_Data has a bool for 'async' at the end of the
struct. This field was missing from the initialization of
'default_state'

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
8 years agoEvas GL: Fix support for the SW engines (OSMesa)
Jean-Philippe Andre [Wed, 14 Oct 2015 10:42:49 +0000 (19:42 +0900)]
Evas GL: Fix support for the SW engines (OSMesa)

Since @raster changed the behaviour of the dirty flag on images,
damages must be added to redraw the GL surface. Evas_Image checks
if it is an Evas GL surface by looking at its native surface.
But in case of SW engine, there was no native surface information
for Evas GL surfaces. Also, the OPENGL surface type was awfully
abused for OSMesa support. Luckily EVASGL surface type lets us
pass arbitrary pointers :)

8 years agoEvas GL: Improve ERR log (direct rendering failed)
Jean-Philippe Andre [Wed, 14 Oct 2015 08:43:36 +0000 (17:43 +0900)]
Evas GL: Improve ERR log (direct rendering failed)

8 years agoEvas GL: Add a test case for Evas GL (make check)
Jean-Philippe Andre [Wed, 14 Oct 2015 08:30:25 +0000 (17:30 +0900)]
Evas GL: Add a test case for Evas GL (make check)

For now this only covers SOME of Evas GL's functions.

It will try to run with opengl_x11 and buffer (OSMesa). It'll also
try to fail silently if the engine initialization failed, or if
OSMesa could not be found. If the engines work, then Evas GL must
work properly.

8 years agoEvas GL: Implement glGetString wrapper for OSMesa
Jean-Philippe Andre [Wed, 14 Oct 2015 08:27:53 +0000 (17:27 +0900)]
Evas GL: Implement glGetString wrapper for OSMesa

This is only one step into making the software engine actually
work the same as a proper GL engine from Evas GL APIs point of view.

This is necessary for the test suite (coming next).

8 years agoEvas GL: Minor changes inside glGetString
Jean-Philippe Andre [Wed, 14 Oct 2015 08:27:23 +0000 (17:27 +0900)]
Evas GL: Minor changes inside glGetString

8 years agoEvas GL: Avoid make_current(0,0) during destroy
Jean-Philippe Andre [Wed, 14 Oct 2015 07:58:05 +0000 (16:58 +0900)]
Evas GL: Avoid make_current(0,0) during destroy

Show an error message and call make_current(NULL, NULL) only if
the object (context, surface) being destroyed is current.

Otherwise, avoid changing the current context & surface.

8 years agogl_x11: val can be everything expected 0 to mean true
Marcel Hollerbach [Wed, 14 Oct 2015 09:08:29 +0000 (11:08 +0200)]
gl_x11: val can be everything expected 0 to mean true

For me on a intel driver val is -1 and it needs to be inverted.
So we need to checkout that val is not 0 and not equals to 1.

Thx to raster for helping debugging this thing :).

8 years agoEina: fix memory leak in eina_file_open()
Vincent Torri [Wed, 14 Oct 2015 08:17:00 +0000 (10:17 +0200)]
Eina: fix memory leak in eina_file_open()

@fix

8 years agoEina: fix eina_file_current_directory_get()
Vincent Torri [Wed, 14 Oct 2015 07:58:19 +0000 (09:58 +0200)]
Eina: fix eina_file_current_directory_get()

the length was not correctly computed and eina_file_path_sanitize() was
was writing beyond the limit of the string

@fix

8 years agoEina: fix spelling in eina_tmpstr documentation
Vincent Torri [Wed, 14 Oct 2015 07:12:32 +0000 (09:12 +0200)]
Eina: fix spelling in eina_tmpstr documentation

8 years agoEvil: set EAPI correctly in pwd.h
Vincent Torri [Tue, 13 Oct 2015 18:45:33 +0000 (20:45 +0200)]
Evil: set EAPI correctly in pwd.h

8 years agoevas gl engine - typo remove from previous commit
Carsten Haitzler (Rasterman) [Wed, 14 Oct 2015 06:17:06 +0000 (15:17 +0900)]
evas gl engine - typo remove from previous commit

some typo crept in that... compiled. a stya / on a line. how it
compiled, i don't know.

8 years agoevas - obj destructrion - handle when obj layer is partly destroyed
Carsten Haitzler (Rasterman) [Wed, 14 Oct 2015 05:47:38 +0000 (14:47 +0900)]
evas - obj destructrion - handle when obj layer is partly destroyed

this should fix T2715 and anything similar as during destruction
object internals are a bit weird.

8 years agoevas - fix evlog to push and pop properly
Carsten Haitzler (Rasterman) [Tue, 13 Oct 2015 11:34:31 +0000 (20:34 +0900)]
evas - fix evlog to push and pop properly

8 years agoeina: util - set tmp to NULL to fix compilation warning
Amitesh Singh [Wed, 14 Oct 2015 03:48:01 +0000 (09:18 +0530)]
eina: util - set tmp to NULL to fix compilation warning

lib/eina/eina_util.c: In function 'eina_environment_tmp_get':
lib/eina/eina_util.c:96:7: warning: 'tmp' may be used uninitialized in this function [-Wmaybe-uninitialized]
    if (!tmp) tmp = "/tmp";
       ^

8 years agoEvas: Some coverity fixes
Jean-Philippe Andre [Wed, 14 Oct 2015 02:19:48 +0000 (11:19 +0900)]
Evas: Some coverity fixes

This are false alarms. But the explicit null check doesn't hurt.
Also, Coverity doesn't like eo_do_ret. Neither do I. :)

- CID 1327246
- CID 1327245

8 years agoEvas render: Fix proxy source_clip with source images
Jean-Philippe Andre [Tue, 13 Oct 2015 13:13:48 +0000 (22:13 +0900)]
Evas render: Fix proxy source_clip with source images

In case the source is an Evas_Image, we skip proxy_subrender,
and so the clip was not set against the source clip.

8 years agoEvas render: Fix proxy source_clip logic inversion
Jean-Philippe Andre [Tue, 13 Oct 2015 11:33:57 +0000 (20:33 +0900)]
Evas render: Fix proxy source_clip logic inversion

As spotted by @FurryMyad I inverted the logic for source_clip.
This should restore the proper behaviour while keeping my previous
fixes working. See D2940.

8 years agoecore_cocoa: fix a bug where event timestamp was not retrieved correctly.
Nicolas Aguirre [Tue, 6 Oct 2015 16:49:53 +0000 (18:49 +0200)]
ecore_cocoa: fix a bug where event timestamp was not retrieved correctly.

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
8 years agoevas: fix build of gl_cocoa engine.
Nicolas Aguirre [Thu, 24 Sep 2015 14:21:30 +0000 (16:21 +0200)]
evas: fix build of gl_cocoa engine.

__context_restore and __need_context_restore are undefined when
building gl_cocoa engine.

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
8 years agoecore_cocoa: use a timer instead of a poller to be more responsive when dealing with...
Nicolas Aguirre [Thu, 6 Aug 2015 21:33:24 +0000 (23:33 +0200)]
ecore_cocoa: use a timer instead of a poller to be more responsive when dealing with cocoa Event.

As all Mouse and Keyboard events comme from Cocoa, the poll period must
be reduced. Backwards of this method is that when no signal are
received for a long period, the timer fired anyway and consumes CPU
for nothig but it seems there is no easy method to integrate NSApplication
mainloop into an existing one.

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
8 years agoecore_evas_cocoa: use the same render function as ecore_evas_x
Nicolas Aguirre [Thu, 6 Aug 2015 17:05:14 +0000 (19:05 +0200)]
ecore_evas_cocoa: use the same render function as ecore_evas_x

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
8 years agoecore_cocoa: fix warnings, add Debug outputs where needed and remove printfs
Nicolas Aguirre [Thu, 6 Aug 2015 16:52:37 +0000 (18:52 +0200)]
ecore_cocoa: fix warnings, add Debug outputs where needed and remove printfs

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
8 years agoeina: Include <unistd.h> for getuid and geteuid functions
Chris Michael [Tue, 13 Oct 2015 19:17:51 +0000 (15:17 -0400)]
eina: Include <unistd.h> for getuid and geteuid functions

Summary: If we do not include unistd.h, we end up with implicit
declaration warnings when compiling

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
8 years agoecore-wl: Add missing EINA_UNUSED for unused function paramaters
Chris Michael [Tue, 13 Oct 2015 19:14:12 +0000 (15:14 -0400)]
ecore-wl: Add missing EINA_UNUSED for unused function paramaters

Signed-off-by: Chris Michael <cp.michael@samsung.com>
8 years agoevas: fix performance regression by reducing the unecessary memcpy we are doing.
Cedric BAIL [Tue, 13 Oct 2015 19:10:34 +0000 (12:10 -0700)]
evas: fix performance regression by reducing the unecessary memcpy we are doing.

Actually copying max is pretty useless and super slow. We usually have something
like 1024 slot in a context, but a very small amount of them are acutally active.
It would be better to actually do some kind of copy on write technique here, but
as Eina_Cow doesn't handle array and we are close to a release, let's be
conservative.

8 years agoevas: follow API documentation more closely.
Cedric BAIL [Tue, 13 Oct 2015 18:45:52 +0000 (11:45 -0700)]
evas: follow API documentation more closely.

8 years agoEcore exe win32: Fix double-free errors.
Tom Hacohen [Tue, 13 Oct 2015 13:31:29 +0000 (14:31 +0100)]
Ecore exe win32: Fix double-free errors.

As reported by vtorri, sometimes ecore_exe on win32 will encounter double
free issues. This was because the variable was freed, but not set to NULL
as expected by the cleanup function.

Fixes T2675

@fix