Jongmin Lee [Tue, 2 Jul 2019 01:16:18 +0000 (10:16 +0900)]
meson: add libdir for supporting QuickBuild
Change-Id: Iaa087e5d436bd849becadd64dbe46db686b43f7f
Shinwoo Kim [Tue, 2 Jul 2019 02:44:08 +0000 (11:44 +0900)]
evas_render: add restacked mapped obj to redraws rect
Summary:
We are adding A object area to the redraws rect when object stack is changed
from (1) to (2) if A object is not mapped.
(1)
┌────────┐
│Object A│┐
└────────┘│
└────────┘
(2)
┌────────┐
│┌────────┐
└│Object B│
└────────┘
But if A object is mapped, then we are adding only part of A object area.
(part of A)
┌────────┐
│┌───────┘
└┘
So the result of stack change is (1) not (2).
This patch set is adding restacked mapped object to the restack_objects array,
after changing the stack of mapped object to add correct redraws rect.
Test Plan: Attached example code
Reviewers: Hermet, jsuya
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9183
Change-Id: I571461a9dbf4dd67dd95d68ce47bf7ebef435a7a
JunsuChoi [Tue, 2 Jul 2019 04:22:10 +0000 (13:22 +0900)]
vg_common_json: Always set the alpha color of the container.
Summary: Fixes the problem that alpha color is not set when alpha will be 255.
Test Plan: N/A
Reviewers: hermet, smohanty, kimcinoo
Change-Id: I46990e4d45a315d58946938b45f710d88da30ccb
Subscribers:
Marcel Hollerbach [Fri, 28 Jun 2019 02:24:47 +0000 (11:24 +0900)]
evas_events: fix wrong event listening
Summary:
EFL_EVENT_FOCUS_IN is wrong here, EFL_EVENT_FOCUS_IN is called on object
that received object focus. Not canvas focus, however, the code in the
callback there seems to be mainly for canvas focus handling.
Additionally, in evas_events, the event handler that was listening for
the canvas focus in / out events expected a event type, which is also
not correct, because the canvas focus in / out does not have one. In
order to catch such errors later more easily, there is now a safety
check, so we really fetched the correct seat.
Reviewers: YOhoho, zmike, segfaultxavi
Reviewed By: YOhoho
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9191
Marcel Hollerbach [Thu, 27 Jun 2019 14:48:37 +0000 (16:48 +0200)]
meson: disable xattr on macos
macos has a different implementation than linux for xattr. This commit
disables XATTR again for macos.
Change-Id: I9fcd984a131ee1af583ee641d61e50d810c96929
Jongmin Lee [Thu, 27 Jun 2019 08:26:55 +0000 (08:26 +0000)]
meson: add some config definitions
Some config definitions used in source code could not be defined during build config process.
- HAVE_XATTR
- HAVE_CIPHER
- HAVE_SIGNATURE
- BUILD_ECORE_EVAS_EWS
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Reviewed-by: Vincent Torri <vincent.torri@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9192
Change-Id: Ic604bd48c3a9b245177c04b23d30934e87b62eaf
Hermet Park [Thu, 27 Jun 2019 04:16:36 +0000 (13:16 +0900)]
evas svg: fix missing node opacity attribute.
Any svg node could have its opacity value, we missed implementing it.
If a node have a opacity, it's opacity could be multiply with fill and stroke colors.
@fix
Change-Id: Iac1caed073c5bf012fc7789e6d3e77e56c59550a
Hermet Park [Wed, 26 Jun 2019 11:48:19 +0000 (20:48 +0900)]
efl_canvas_vg_container: remove unnecessary parent set.
the duplicated object must be set its parent by caller,
it shouldn't set it by itself internally.
Change-Id: I62feff07e16c7db0d35463b42d36d0f5f7af6604
Hermet Park [Wed, 26 Jun 2019 08:14:27 +0000 (17:14 +0900)]
evas vector: set proper parents of clone objects.
fill, marker, stroke need proper parent when they were cloned.
Here, they would get the container of the shape which is going to be copied.
@fix
Change-Id: I0fe4eb7b227d7f72826378e8c7ea1a96f3b4f14f
Hermet Park [Wed, 26 Jun 2019 10:59:11 +0000 (19:59 +0900)]
meson: enable json(lottie) loader in default.
Upstream efl diasbles lottie feature in default,
however Tizen requires it as a main.
Change-Id: I82d1195474df9057031277389b8a15b7ba791b35
Vitor Sousa [Tue, 4 Jun 2019 22:39:51 +0000 (22:39 +0000)]
eo: add an API entry for custom instantiation of Eo objects for binding usage
Add a new function in the Eo API in order to provide more options on object
instantiation for binding creators.
For the Eo lib to be able to construct objects that inherit from bindings in
many languages we should provide a way for bindings to call different kinds of
constructors, in a way that simply overriding the `efl_constructor` method is
not enough.
We need a way to differentiate at construction time if the Eo is being
constructed from C or from the binding, because if it is the
former we need too call the inherited object constructor from C and instantiate
a new object, and if it is the later we need to avoid instantiating a
new object because we are already in the middle of the process of creating
a new one.
`efl_constructor` alone does not provide any way of distinguishing between
those situations, so, being able to pass additional information for
efl_add_start (like a custom constructor pointer) is necessary to make the
right distinction.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9070
ali [Tue, 25 Jun 2019 17:20:02 +0000 (19:20 +0200)]
evas_common_format_color_parse: support color names
Summary:
efl user can now specify colors by there names ( not only Hex RGB/RGBA values), which is very convenient specially for first time users (where user may think it is supported by default)
<color=#FF0000> == <color=red> == <color==RED>
there are two main types of color names and values ( X11, web colors), here we are using X11 color.
============
Update for documentation pages should be added like:
https://www.enlightenment.org/_legacy_embed/evas_textblock_style_page.html#evas_textblock_style_color
I do not know how to update it :(
Test Plan:
```
#define EFL_EO_API_SUPPORT 1
#define EFL_BETA_API_SUPPORT 1
#include <Eina.h>
#include <Elementary.h>
#include <Efl_Ui.h>
static void
_gui_quit_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED)
{
efl_exit(0);
}
static void
_gui_setup()
{
Eo *win, *box;
win = efl_add(EFL_UI_WIN_CLASS, efl_main_loop_get(),
efl_ui_win_type_set(efl_added, EFL_UI_WIN_TYPE_BASIC),
efl_text_set(efl_added, "Hello World"),
efl_ui_win_autodel_set(efl_added, EINA_TRUE));
// when the user clicks "close" on a window there is a request to delete
efl_event_callback_add(win, EFL_UI_WIN_EVENT_DELETE_REQUEST, _gui_quit_cb, NULL);
box = efl_add(EFL_UI_BOX_CLASS, win,
efl_content_set(win, efl_added),
efl_gfx_hint_size_min_set(efl_added, EINA_SIZE2D(360, 240)));
efl_add(EFL_UI_TEXT_CLASS, box,
efl_text_markup_set(efl_added,
"<color=red>this is red color line(color = red)<color><br>"
"<color=#0000FF>this is blue color line (color = #0000FF)<color><br>"
"<color=gray>this is gray color line (color = gray)<color><br>"),
efl_gfx_hint_weight_set(efl_added, 1.0, 0.9),
efl_gfx_hint_align_set(efl_added, 0.5, 0.5),
efl_text_multiline_set(efl_added,EINA_TRUE),
efl_pack(box, efl_added));
efl_add(EFL_UI_BUTTON_CLASS, box,
efl_text_set(efl_added, "Quit"),
efl_gfx_hint_weight_set(efl_added, 1.0, 0.1),
efl_pack(box, efl_added),
efl_event_callback_add(efl_added, EFL_UI_EVENT_CLICKED,
_gui_quit_cb, efl_added));
}
EAPI_MAIN void
efl_main(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
{
_gui_setup();
}
EFL_MAIN()
```
Reviewers: woohyun, bowonryu, segfaultxavi, vtorri
Reviewed By: segfaultxavi, vtorri
Subscribers: vtorri, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9153
Mike Blumenkrantz [Tue, 25 Jun 2019 17:00:53 +0000 (13:00 -0400)]
tests: fix unforked efl_ui_radio_group completion
Summary: change fixture to zero all global variables and reset state
Reviewers: bu5hm4n
Reviewed By: bu5hm4n
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9177
Stefan Schmidt [Tue, 25 Jun 2019 16:11:33 +0000 (12:11 -0400)]
ci: travis: add coverity build job to be run from cron
Summary:
We finally have regular Coverity Scan runs back to our CI.
It gets triggered from the cron jobs on Travis. As we are not able to
identify if it comes from a daily or weekly cron build I added a check
to only run the scan build on a Saturday so we should have a nice and
fresh report on Monday morning in our mailboxes.
Reviewers: zmike, bu5hm4n
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9175
Marcel Hollerbach [Tue, 25 Jun 2019 14:51:31 +0000 (16:51 +0200)]
meson: fix building of svg / eet / json loader if its disabled
the problem was that the savers are defining the same defines as the
loaders. Because of me beeing paranoid, i would like to keep the double
define, as later on, someone will likely forget it, and it does not do
any harm here.
this fixes ci.
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D9174
Stefan Schmidt [Tue, 25 Jun 2019 13:08:16 +0000 (09:08 -0400)]
ci: travis: remove left over from autotools build
Summary:
This caching is no longer needed. No m4 cache around with meson.
Our config.cache setup by our autotools build is no longer there either.
Reviewers: zmike, bu5hm4n
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9160
ali [Tue, 25 Jun 2019 12:48:40 +0000 (21:48 +0900)]
evas_common: use memcpy to copy pixel buffer
Summary: This function has no special processing when copy data, so using memcpy can enhance performance
Test Plan:
```
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
typedef unsigned int DATA32;
static void
oldFunc(DATA32 *src, DATA32 *dst, size_t len)
{
DATA32 *dst_end = dst + len;
while (dst < dst_end)
*dst++ = *src++;
}
static void
newFunc(DATA32 *src, DATA32 *dst, size_t len)
{
memcpy(dst, src, len * sizeof(DATA32));
}
int main()
{
int counter = 1000;
srand(time(NULL));
DATA32 src[50000] = {0};
DATA32 dst[50000] = {0};
for (int i = 0; i < 50000; i++)
src[i] = rand();
clock_t start, end;
double total_Time1 = 0;
int i;
start = clock();
for (i = 0; i < counter; i++)
oldFunc(src, dst, 50000);
end = clock();
total_Time1 = ((double)(end - start)) / CLOCKS_PER_SEC;
printf("original = %f \n", total_Time1);
start = clock();
for (i = 0; i < counter; i++)
newFunc(src, dst, 50000);
end = clock();
total_Time1 = ((double)(end - start)) / CLOCKS_PER_SEC;
printf("modified = %f \n", total_Time1);
}
```
Reviewers: raster, ManMower, woohyun, Hermet
Reviewed By: Hermet
Subscribers: Hermet, vtorri, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9155
Felipe Magno de Almeida [Tue, 25 Jun 2019 10:11:23 +0000 (19:11 +0900)]
efl-mono: Add object type support for Eina.Value
Summary:
C# `Eina.Value` now has builtin support for `EINA_VALUE_TYPE_OBJECT`.
To avoid ambiguity with the `Set` method overloads, explicit casting
operators were used for wrapping/unwrapping `Efl.Object` instead of
implicit ones like for other value types.
Thus, to initialize an `Eina.Value` from an object, you can use the
following:
`var v = (Eina.Value)myObj;`
Reviewers: felipealmeida, vitor.sousa, segfaultxavi, Jaehyun_Cho
Reviewed By: Jaehyun_Cho
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9164
Mike Blumenkrantz [Fri, 21 Jun 2019 18:07:44 +0000 (14:07 -0400)]
tests/slider: verify emission of changed and delay,changed events
this simulates clicking and dragging a slider to avoid regressions with
these events
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9152
Mike Blumenkrantz [Fri, 21 Jun 2019 18:04:09 +0000 (14:04 -0400)]
efl_ui_slider: remove setting pass_events on internal spacer in constructor
this object is swallowed into a layout, which means the layout will be managing
this property
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9151
Daniel Kolesa [Fri, 21 Jun 2019 13:05:50 +0000 (15:05 +0200)]
eolian: add library support for declaring and using errors
You can now declare errors like this:
error Foo = "message"; [[documentation]]
Then you can use them as types like this:
foo {
return: error(Error1, Error2, ...);
}
They have a separate type category and storage. They are checked
for redefinitions the same as anything else though. This does
not add any generator support nor it adds any advanced checking.
Ref T6890
Stefan Schmidt [Mon, 24 Jun 2019 13:10:56 +0000 (09:10 -0400)]
ci: travis: osx: switch to newer macos image and brew addon for packages
Summary:
One of the time consuming parts of the macos build we have is the
installing of the efl dependencies as packages from brew.
The brew update command alone is often taking 5m to run.
To avoid running brew update at all we are switching to a newer osx
image from Travis, which comes with a newer set of brew metadata and
gets us around a brew update for now. Together with this we are also
switching from our own dependency install script to the brew package
addon provided by travis already.
In my testing this shows we are only spending 270s in the brew package
updates comapred to 635s before. So we have a 6 minutes speedup for
every osx build!
Depends on D9161
Reviewers: zmike, bu5hm4n
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9162
Stefan Schmidt [Mon, 24 Jun 2019 13:09:34 +0000 (09:09 -0400)]
ci: enforce ccache for macos meson run
Summary:
While we set CC="ccache gcc" as an env var in Travis it gets overridden
at some point before meson is run. This results in a situation where we
have ccache enabled for g++, but not for gcc. Enforcing the setting
directly before meson again to make sure it gets picked up correctly.
I have seen build time improvements on Travis with up to 7 minutes
with this in an optimal case (rebuild existing job). It should shave off
at least a few minutes from every build even with bigger changes.
Depends on D9160
Reviewers: zmike, bu5hm4n
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9161
Vincent Torri [Mon, 24 Jun 2019 13:01:25 +0000 (09:01 -0400)]
remove last bits of Evil.h in tests and use evil_private.h instead
Test Plan: compilation
Reviewers: zmike, raster, cedric
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9154
Hermet Park [Mon, 24 Jun 2019 12:29:14 +0000 (21:29 +0900)]
efl_ui_textpath: fix a center align but that doesn't happen at text_set().
When textpath obj has a new text data, it must update center align position
based on the new text length. Previously, it missed that logic.
@fix
Change-Id: Ie30754bc11847f2c3c4a97d10a9209486fb9f6b1
Yeongjong Lee [Mon, 24 Jun 2019 10:19:00 +0000 (19:19 +0900)]
eolian_mono: support eo access modifiers
Summary:
Because in C# interface members can't include access modifiers, eolian_mono
ignore function scope tags in eo interfaces.
ref T7494
Reviewers: q66, felipealmeida, lauromoura, segfaultxavi, Jaehyun_Cho
Reviewed By: Jaehyun_Cho
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7494
Differential Revision: https://phab.enlightenment.org/D9128
Jaehyun Cho [Mon, 24 Jun 2019 09:43:07 +0000 (18:43 +0900)]
eolian_mono: fix to call mixin's method in inherited class
Summary:
Eo mixin is converted to C# interface and C# concrete class.
When the mixin's method is called, the delegate function of Eo mixin's
C# concrete class is called.
Now, the delegate function of Eo mixin's C# concrete class calls C#
method with casting to Eo mixin's C# concrete class type.
e.g. ((IClickableConcrete)ws.Target).Press(button);
If a user defined C# class implements Eo mixin's C# interface, the
implemented method cannot be called because the user defined C# class
type is not the same as Eo mixin's C# concrete class.
To resolve the above issue, the type casting code is fixed.
Reviewers: felipealmeida, lauromoura, vitor.sousa, YOhoho
Reviewed By: YOhoho
Subscribers: bu5hm4n, YOhoho, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9111
Marcel Hollerbach [Fri, 21 Jun 2019 14:45:40 +0000 (16:45 +0200)]
meson: do not error when no optimization architecture is there
this should fix building on architectures that do not have native
optimization support in efl.
fix T8028
Reviewed-by: Dan Horák <@sharkcz>
Differential Revision: https://phab.enlightenment.org/D9150
Marcel Hollerbach [Fri, 21 Jun 2019 13:40:17 +0000 (09:40 -0400)]
efl_ui_win: fix emitting of object focus events
Summary: the event type was wrong. This is now fixed and works correctly.
Reviewers: stefan_schmidt, zmike, segfaultxavi
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9144
Stefan Schmidt [Fri, 21 Jun 2019 09:51:52 +0000 (11:51 +0200)]
ci: make sure we disable the new json evas loader in our jobs
This have been just added and we need to update our disabled list for
some specific jobs where we mess with the disabled loaders manually.
JunsuChoi [Tue, 11 Jun 2019 10:01:11 +0000 (19:01 +0900)]
vg_common_json: Set container's alpha color
Summary: If the layer has an alpha value, we have make it available to container.
Test Plan: N/A
Reviewers: Hermet, smohanty
Reviewed By: Hermet
Subscribers: cedric, #reviewers, kimcinoo, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9081
Change-Id: I3553e09ad493a466b61f5df16a256af439add361
Hermet Park [Wed, 5 Jun 2019 07:42:15 +0000 (16:42 +0900)]
canvas vg: optmize lottie vector tree.
Skip invisible stroke nodes as possible.
Change-Id: I41506a716a152886e28a97773face5b52be63e45
Hermet Park [Fri, 21 Jun 2019 08:36:16 +0000 (17:36 +0900)]
evas vector: add a lottie animation example.
Summary: Depends on {D8941}
Reviewers: #committers, jsuya
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8944
Change-Id: I1babccfdf2d3e45e5f5fbc1fbe479afe71c19b64
Hermet Park [Fri, 21 Jun 2019 08:32:37 +0000 (17:32 +0900)]
evas vector: support lottie animation as using json loader.
Summary:
This patch extends efl_canvas_vg_object class to implement efl_gfx_frame_controller
to suppor any playable animation on it.
Plus, vector object takes care of lottie animation by using json loader.
it's caching mechanism is changed to cache only static frame, not all frames.
vg_cache supports json loader and make it animation request properly.
This feature has been stabilized enough, it's using in Samsung Galaxy Watch active product,
proved its stability enough.
Depends on {D8940}
Co-authored-by: JunsuChoi <jsuya.choi@samsung.com>
Reviewers: #committers, jsuya
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8941
Hermet Park [Fri, 21 Jun 2019 08:30:19 +0000 (17:30 +0900)]
evas vector: support json loader for rlottie integration.
Summary:
Introduce a new evas json loader to support lottie animation.
This json loader uses rlottie library which is a new github open project.
These days most ui frameworks (windowpws, skia, qt, xamarin, react, nativescript) supports lottie,
the rlottie was designed to support lottie as a standalone library and compatible with efl as well.
To enable this,please install rlottie library then remove json disabler in meson_options.txt
For more information, See lottie/rlottie project and its a introdcution article:
https://airbnb.io/lottie/#/
https://github.com/samsung/rlottie
https://hermet.pe.kr/143
Co-authored-by: JunsuChoi <jsuya.choi@samsung.com>
{D8941}
{D8944}
Reviewers: #committers, jsuya, bu5hm4n
Subscribers: bu5hm4n, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8940
Carsten Haitzler (Rasterman) [Fri, 21 Jun 2019 08:29:52 +0000 (09:29 +0100)]
fix segv when adding optimizations to edje message handling
613e1715be1114c2221f1a12f067e3d1e215265f (and friends) added a bit a
biug where messages in the queue were not skipped as they were before
causing a segv witha null lookup. this fixes that. eclipse about
dialog showed this bug up. no longer happens now.
Marcel Hollerbach [Thu, 20 Jun 2019 17:05:31 +0000 (13:05 -0400)]
remove more files
Summary: those files are leftover from autotools. They have been missed before
Reviewers: stefan_schmidt, zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9143
Marcel Hollerbach [Thu, 20 Jun 2019 15:37:04 +0000 (17:37 +0200)]
efl_ui_radio: fixup wrong reference
group_create is not anymore. This is now repaired.
Stefan Schmidt [Tue, 4 Jun 2019 19:11:20 +0000 (21:11 +0200)]
build: remove no longer needed eolian-bootstrap target
This basically reverts
ac606105. It was added to help the windows cross
builds on our CI. It served a purpose but with the requirements on
native eet, edje_cc and up to elm_prefs_cc we end up with a full native
build of EFL in most cases anyway.
A full meson build of EFL with examples, bindings and tests disabled is
actually quite fast and makes sure we have the latest needed on the CI
for the cross build. I switched over to this a week ago, so we can get
rid of this extra target to maintain.
Differential Revision: https://phab.enlightenment.org/D9086
Signed-off-by: Stefan Schmidt <s.schmidt@samsung.com>
Marcel Hollerbach [Thu, 20 Jun 2019 13:17:32 +0000 (15:17 +0200)]
efl_input_device: split up has_pointer_cap
it was somehow confusing that this function was used for two different
things. Now we have 2 functions for checking is it is of pointer_type or
how many pointer devices are in a seat.
ref T7963
Reviewed-by: Chris Michael <cp.michael@samsung.com>
Differential Revision: https://phab.enlightenment.org/D9142
Marcel Hollerbach [Thu, 20 Jun 2019 12:51:55 +0000 (14:51 +0200)]
efl_input_key: compose -> compose_string
rename this property, as this name was considered better.
ref T7964
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D9141
Marcel Hollerbach [Thu, 20 Jun 2019 11:33:03 +0000 (13:33 +0200)]
efl_ui_win: repair scene event emission
It appears that EVAS_CALLBACK_FOCUS_IN / OUT is wrong here, as this is
for when a object gets focus but not the scene.
However, the inital event emission still does not work correctly, this
needs some further investigation.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9138
Marcel Hollerbach [Thu, 20 Jun 2019 10:54:02 +0000 (12:54 +0200)]
evas: emit the corrent event here,
it seems we have done here something wrong, EFL_EVENT_FOCUS_IN is meant
to be emitted on objects that RECEIVE focus. This function here however
is called each time the window gets focus, which then might lead to a
object getting focus. However, those are two different things.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9137
Marcel Hollerbach [Thu, 20 Jun 2019 10:38:34 +0000 (12:38 +0200)]
efl_canvas_scene: we never provided a object as event type here
And further more, this object here would have been wrong(as it is
transporting the focused object), so we should not write here any type.
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D9136
Marcel Hollerbach [Thu, 20 Jun 2019 10:13:37 +0000 (12:13 +0200)]
efl_input_pointer: rename tool to touch_id
tool was not very helpfull, and additionally, the docuemtnation of it
was completly wrong. After searching through the code where tool was
actaully set (efl_ui_win.c) it turned out that it is actaully the "id"
of the pointer when there are multiple touch events.
ref T7963
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D9135
Xavi Artigas [Fri, 31 May 2019 11:18:24 +0000 (11:18 +0000)]
Efl.Ui.Radio: Update docs
Ref T7867
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9061
Marcel Hollerbach [Wed, 29 May 2019 18:06:25 +0000 (20:06 +0200)]
efl_ui_radio: cleanup API
This is a bit of a giant commit. However, the problem here is that
cleaning up the API went hand in hand with rewriting most of the usages.
In the process of renewing and removing old API the following was done:
- Legacy API testcases have been ported back to smart callbacks
- EO-API testcases have been ported to efl_add syntax
- weird event #defines have been removed
- Wrong constructor usage has been removed
- Ported to the new box object introduced before
- removed legacy API from efl_ui_radio
-> no more ptr(int) q66 will do jumps of happiness
-> no more ununderstandable group_add methods
-> Seperated code in blocks only for legacy, and blocks only for
non-legacy
To verify this commit, you can check all the tests that have been
touched here. Additionally, the cxx example has been adjusted
ref T7867
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9060
Marcel Hollerbach [Thu, 30 May 2019 20:15:19 +0000 (22:15 +0200)]
efl_ui_radio: refactor for usage of efl_ui_check_selected
in previous versions of this widget, the calls that are available due to
inheritance did not work. efl_ui_check_selected_set did not work on a
radio button. However, the internal function _state_set did just exactly
that. So this commit refactors the activity emitting out of the
function, so the _state_set function can just be used as the
efl_ui_check_selected set function.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9059
Marcel Hollerbach [Wed, 29 May 2019 11:03:37 +0000 (13:03 +0200)]
Introduce Efl.Ui.Radio_Group & Efl.Ui.Radio_Box
Radio_Group is a interface that manages that radio groups can be grouped inside a
external object, the current API of radio was considered confusing in
that regard. It is implemented in the Radio_Group_Internal class which
is private to EFL, a instance of it can be found with get due to the
class function in efl_ui_radio.eo. This architecture was taken like
this, in order to have implementation and interface seperated. With
those two seperated we can inherit from regular widgets, implement the
interface, and composite attach the internal object to the regular
widget. This makes a lot of things easier.
Radio_Box is a class which is extending Efl.Ui.Box, which has an
internal Radio_Group. This is extremly usefull for cases where you just
want to have a list of radio buttons in your UI. The radio group is also
exposed using composition to the internal object. Simular things can be
done for the table.
For now i did not add API to find the group of a radio button. However,
this can be quickly added if requested.
ref T7867
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D9058
Cedric BAIL [Thu, 20 Jun 2019 13:38:11 +0000 (09:38 -0400)]
ecore: do not rely on implicit rules for memory lifecycle during test.
Summary:
alloca force the memory to be accessible for the entire duration of the
scope of the function it is called from. This will garantee that the
memory pointer are not recycled under our feet before we check them.
T8020
Reviewers: zmike
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8020
Differential Revision: https://phab.enlightenment.org/D9127
Marcel Hollerbach [Thu, 20 Jun 2019 12:20:15 +0000 (14:20 +0200)]
fix build.
Ali Alzyod [Thu, 20 Jun 2019 12:05:01 +0000 (14:05 +0200)]
evas_textblock: more descriptive parameter names
Summary:
Use more descriptive parameter names.
l, r, t, b it my confused with rgb value or something similar.
Reviewers: segfaultxavi, woohyun, bowonryu
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9131
Stefan Schmidt [Thu, 20 Jun 2019 08:11:10 +0000 (10:11 +0200)]
ci: use ccache also in the mingw cross build
This is one of these two line changing commits one just have to love.
Using ccache also for the mingw builds got a amazing speedof for the
cross build as well.
In my, simple, testing I could reduce the build time on Travis from 18m
to 6m when rebuilding the same rev, thus a 100% cache hit rate. In real
life this would be less of an improvement but reducing the build time in
half is kind of realistic I think. Thanks to Marcel to bringing the idea
up.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9139
Vincent Torri [Thu, 20 Jun 2019 11:50:35 +0000 (12:50 +0100)]
tests: fix warnings and undef ref on Windows (using meson :-) )
Summary: we need to include evil_private.h so that some symbols are declared
Test Plan: compilation
Reviewers: raster, zmike, cedric
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9129
Carsten Haitzler (Rasterman) [Thu, 20 Jun 2019 11:08:14 +0000 (12:08 +0100)]
evas - events - protect on object deletion while calling callbacks
mouse in/out feeds can call callabcks that can then go delete objects
- ref them all to ensure they stay alive while we use them. this will
fix a segv apbbb saw.
Carsten Haitzler (Rasterman) [Thu, 20 Jun 2019 10:32:12 +0000 (11:32 +0100)]
efl_wfl: fix warning and err prints for wl keymap tmp file
Carsten Haitzler (Rasterman) [Thu, 20 Jun 2019 10:24:57 +0000 (11:24 +0100)]
ecore - efl thread - handle write call mishaps and complain
fixes warnings too.
Carsten Haitzler (Rasterman) [Thu, 20 Jun 2019 10:06:37 +0000 (11:06 +0100)]
meson - docs - convert - we aren't using it so don't require it
comment it out and move it closer to the block that needs it to make
it obvious ... we don't need it.
i'm all-in-all not that into the eps conversion thing for docs there
too... :(
WooHyun Jung [Thu, 20 Jun 2019 08:55:05 +0000 (08:55 +0000)]
elm_slider: fix to call legacy "delay,changed" callback
Just fixed a backward compatibility issue in elm_slider.
Now it calls "delay,changed" as it had done previously.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9130
Mike Blumenkrantz [Wed, 19 Jun 2019 18:09:32 +0000 (14:09 -0400)]
Revert "efl_ui_suite_spec: add a hack to have running tests again"
This reverts commit
2ef8894fcd415cdc24d7bc222a9f8425fb8f9f34.
this is no longer needed
Differential Revision: https://phab.enlightenment.org/D9126
Mike Blumenkrantz [Wed, 19 Jun 2019 18:05:55 +0000 (14:05 -0400)]
efl_ui/active_view: fix object destruction
when the activeview is being destroyed, we can skip a lot of steps in
unregistering widgets due to hierarchy-enforced deletion and class
chaining of destructors.
on the flip side, we also need to be cautious of triggering codepaths that
will perpetuate object lifecycles past when they should be destroyed and
trigger unwanted behavior.
for this case, when the activeview is being destroyed we can simply efl_del
all the contents to reuse existing callbacks, and then we can skip doing
all the update propagation through activeview subcomponents since those will
be destroyed presently. also, these subcomponents already handle subobject
destruction with callbacks, so they'll automatically clean everything up.
probably.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9125
Marcel Hollerbach [Wed, 19 Jun 2019 13:37:19 +0000 (09:37 -0400)]
efl_ui_suite_spec: add a hack to have running tests again
Summary:
it seems something is leading to weird stack behavior with gcc when we
do not delete the widget here. Later deletion in _elm_win_shutdown leads
to a crash like:
#0 0x00007f7b30dd5bd7 in _elm_win_shutdown () at ../src/lib/elementary/efl_ui_win.c:3805
#1 0x01007f7b30cdf3a2 in ?? ()
#2 0x00007fffa4e60570 in ?? ()
#3 0x0000000000407b14 in _elm_suite_shutdown () at ../src/tests/elementary/suite_helpers.c:52
which is kind of weird. After a day of debugging i did not get any
further, so maybe it is better to do add a hack, so we are having at
least a running CI again
Reviewers: stefan_schmidt, zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9112
Stefan Schmidt [Wed, 19 Jun 2019 13:26:29 +0000 (09:26 -0400)]
ci: travis: no need to cache the autom4te.cache any longer
Summary:
This was part of the caching speedup for autotools we no longer need.
Depends on D9121
Reviewers: zmike, bu5hm4n
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9122
Stefan Schmidt [Wed, 19 Jun 2019 13:26:23 +0000 (09:26 -0400)]
ci: remove no longer needed make examples script
Summary:
With the meson build the examples do not have a dedicated target, no
need for this script anymore.
Depends on D9120
Reviewers: zmike, bu5hm4n
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9121
Stefan Schmidt [Wed, 19 Jun 2019 13:26:18 +0000 (09:26 -0400)]
ci: rename some travis fold log names and add more
Summary:
For an easier to grasp travis output we are using the travis_fold and
endfold markers in our scripts. Renaming a few here to match the usage
of meson and ninja instead of make. Also adding a few more that have
been missing.
While we are add it remove a now silly extra mingw conditional.
Depends on D9119
Reviewers: zmike, bu5hm4n
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9120
Stefan Schmidt [Wed, 19 Jun 2019 13:26:13 +0000 (09:26 -0400)]
ci: enhance enabled/disabled meson builds to cover almost all options
Summary:
We have been lacking to test many of the build options we have with
meson. Catching up on them here for the enabled and disabled build jobs.
Not everythign could be covered yet, but I leave notes about what stil
needs handling.
Depends on D9118
Reviewers: zmike, bu5hm4n
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9119
Stefan Schmidt [Wed, 19 Jun 2019 13:26:08 +0000 (09:26 -0400)]
ci: remove no longer needed MAKEFLAGS env variable
Summary:
This was used to pass to make and is no longer used with ninja.
Depends on D9117
Reviewers: zmike, bu5hm4n
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9118
Stefan Schmidt [Wed, 19 Jun 2019 13:26:01 +0000 (09:26 -0400)]
ci: travis: remove no longer used BUILDSYSTEM env variable
Summary:
We used this to have a conditional to enter the different autotools
and meson branches in our build scripts. No longer needed.
Depends on D9116
Reviewers: zmike, bu5hm4n
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9117
Stefan Schmidt [Wed, 19 Jun 2019 13:25:56 +0000 (09:25 -0400)]
ci: remove no longer used scripts and patch file
Summary:
With the autotools build system gone we now longer need these files in
our CI system.
Reviewers: zmike, bu5hm4n
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9116
Mike Blumenkrantz [Tue, 18 Jun 2019 14:20:32 +0000 (10:20 -0400)]
ci: remove autotools-related conditionals
these are no longer used by anything
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D9108
Stefan Schmidt [Wed, 19 Jun 2019 08:58:42 +0000 (10:58 +0200)]
build: emotion: fix lookup of gstreamer 0.10 dependency
The pkg-config file for the 0.10 series of gstreamer is called
gstreamer-0.10.pc and we need to correct name in the dependency check
here to find it. Improving our CI coverage does spot bugs. :-)
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9114
Stefan Schmidt [Wed, 19 Jun 2019 11:09:05 +0000 (13:09 +0200)]
build: emotions: gstreamer: add needed ecore_x internal dependency
The 0.10 gstreamer module needs Ecore_X.h during build. Make sure we
actually have this dependency right so the build can succeed.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9113
Xavi Artigas [Wed, 19 Jun 2019 08:19:49 +0000 (10:19 +0200)]
Fix miscellaneous build warnings
Nothing serious, but they were driving me mad.
Mike Blumenkrantz [Wed, 19 Jun 2019 07:55:51 +0000 (09:55 +0200)]
efl_ui_range_display: range_min_max -> range_limits
Summary: ref T7895
Reviewers: segfaultxavi
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl_api
Maniphest Tasks: T7895
Differential Revision: https://phab.enlightenment.org/D9110
Yeongjong Lee [Wed, 19 Jun 2019 06:59:54 +0000 (15:59 +0900)]
efl_mono: support multilevel inheritance of NativeClass
Summary:
When it creates multilevel class of NativeClass, internal c function is not
called because eo vtables aren't created
Test Plan:
Check "MyBox2 UpdateLayout" printed.
```
//mcs test_box.cs -out:test_box.exe `pkg-config --libs efl-mono`
//mono test_box.exe
using System;
public class MyBox2 : MyBox
{
public MyBox2(Efl.Object parent, string style = null) : base(parent, style)
{
}
public override void UpdateLayout()
{
Eina.Log.Error("MyBox2 UpdateLayout");
base.UpdateLayout();
}
}
public class MyBox : Efl.Ui.Box
{
public MyBox(Efl.Object parent, string style = null) : base(parent, style)
{
}
public override void UpdateLayout()
{
Eina.Log.Error("MyBox UpdateLayout");
base.UpdateLayout();
}
}
public class Example : Efl.Csharp.Application
{
protected override void OnInitialize(Eina.Array<System.String> args)
{
Efl.Ui.Win win = new Efl.Ui.Win(Efl.App.AppMain);
var box = new MyBox(win);
box.SetHintSizeMin(new Eina.Size2D(360, 240));
win.SetContent(box);
var box2 = new MyBox2(win);
box2.SetHintSizeMin(new Eina.Size2D(360, 240));
box2.Pack(box);
var button = new Efl.Ui.Button(box);
button.SetText("Click");
button.ClickedEvt += (object sender, Efl.Ui.IClickableClickedEvt_Args e) =>
{
box.CalculateGroup();
box2.CalculateGroup();
};
box.Pack(button);
}
public static void Main()
{
var example = new Example();
example.Launch();
}
}
```
Reviewers: segfaultxavi, vitor.sousa, felipealmeida, lauromoura, woohyun, Jaehyun_Cho
Reviewed By: Jaehyun_Cho
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9079
Marcel Hollerbach [Sat, 18 May 2019 16:45:50 +0000 (18:45 +0200)]
efl_ui_stack: remove!
this can now be done with active_view. This is done in order to reduce
the LOC in elementary that basically do the same.
Differential Revision: https://phab.enlightenment.org/D8920
Wonki Kim [Thu, 20 Jun 2019 06:49:02 +0000 (15:49 +0900)]
spec: switch buildsystem to meson from autotools
from upstream, autotools buildsystem has removed.
tizen efl now uses meson for its buildsystem.
Change-Id: I82e76cf9dab0f7933501d12bf92a9e84a32f34cd
Marcel Hollerbach [Sun, 26 May 2019 16:30:54 +0000 (18:30 +0200)]
autotools: REMOVAL!
Get your seatbelt fastend! It is happening! AUTOTOOLS IS GONE NOW!
All praise to meson!
This time the final version, ci has been adjusted, and now does not try
anymore to build a removed buildsystem. However, the scripts in there
need cleaning up.
Differential Revision: https://phab.enlightenment.org/D9027
Marcel Hollerbach [Tue, 18 Jun 2019 06:12:44 +0000 (08:12 +0200)]
Revert "autotools: REMOVAL!"
This reverts commit
e8c69667b01e2795c1e4ead0536652f935ffa674.
git push on a wrong branch, sorry. This will land today, but not now.
Marcel Hollerbach [Sun, 26 May 2019 16:30:54 +0000 (18:30 +0200)]
autotools: REMOVAL!
Get your seatbelt fastend! It is happening! AUTOTOOLS IS GONE NOW!
All praise to meson!
Differential Revision: https://phab.enlightenment.org/D9027
Change-Id: I8574ad29fed8173455e6995cade966b0bac29f2b
Hermet Park [Mon, 24 Jun 2019 12:29:14 +0000 (21:29 +0900)]
efl_ui_textpath: fix a center align but that doesn't happen at text_set().
When textpath obj has a new text data, it must update center align position
based on the new text length. Previously, it missed that logic.
@fix
Change-Id: Ibba951791904a797d0ddd1553799fc7cc0d18bb2
Shinwoo Kim [Mon, 24 Jun 2019 06:22:00 +0000 (15:22 +0900)]
elementary: remove deprecated API
The elm_ctxpopup_direction_available_get should have been removed by
commit
9d0e1d766c4485df85416d8c1c0ae77354cc8813
[Commit Details]
- commit
9d0e1d766c4485df85416d8c1c0ae77354cc8813
- Author: Shinwoo Kim <cinoo.kim@samsung.com>
- Date: Wed May 22 16:52:37 2019 +0900
elementary: remove deprecated API
Following API was deprecated from 2.4.
- elm_ctxpopup_direction_available_get (ACR-319)
- elm_win_profiles_set (ACR-353)
It is time to remove. This patch is related to ACR-1373.
Change-Id: Ic5e073fcc54cdfa9d9089d74a4c0de94009bc62b
Hermet Park [Mon, 24 Jun 2019 06:03:25 +0000 (15:03 +0900)]
evas vg: fix build break.
Removed duplicated code snippets that were introduced by wrong merge.
Change-Id: Ib0238e8f6ded0e17c7ee90ac3d56f1f61d442884
Hermet Park [Fri, 21 Jun 2019 08:36:16 +0000 (17:36 +0900)]
evas vector: add a lottie animation example.
Summary: Depends on {D8941}
Reviewers: #committers, jsuya
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8944
Change-Id: I5fc565798b1408095ac89b8d55446432794a41a3
Hermet Park [Fri, 21 Jun 2019 08:32:37 +0000 (17:32 +0900)]
evas vector: support lottie animation as using json loader.
Summary:
This patch extends efl_canvas_vg_object class to implement efl_gfx_frame_controller
to suppor any playable animation on it.
Plus, vector object takes care of lottie animation by using json loader.
it's caching mechanism is changed to cache only static frame, not all frames.
vg_cache supports json loader and make it animation request properly.
This feature has been stabilized enough, it's using in Samsung Galaxy Watch active product,
proved its stability enough.
Depends on {D8940}
Co-authored-by: JunsuChoi <jsuya.choi@samsung.com>
Reviewers: #committers, jsuya
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8941
Change-Id: I7a71bbb3bbf58aa7faed05033e5ede18e7877739
Hermet Park [Fri, 21 Jun 2019 08:30:19 +0000 (17:30 +0900)]
evas vector: support json loader for rlottie integration.
Summary:
Introduce a new evas json loader to support lottie animation.
This json loader uses rlottie library which is a new github open project.
These days most ui frameworks (windowpws, skia, qt, xamarin, react, nativescript) supports lottie,
the rlottie was designed to support lottie as a standalone library and compatible with efl as well.
To enable this,please install rlottie library then remove json disabler in meson_options.txt
For more information, See lottie/rlottie project and its a introdcution article:
https://airbnb.io/lottie/#/
https://github.com/samsung/rlottie
https://hermet.pe.kr/143
Co-authored-by: JunsuChoi <jsuya.choi@samsung.com>
{D8941}
{D8944}
Reviewers: #committers, jsuya, bu5hm4n
Subscribers: bu5hm4n, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8940
Change-Id: I6216baf76bc725a95a31498a78c1b1b70441fd5e
JunsuChoi [Thu, 20 Jun 2019 07:07:05 +0000 (16:07 +0900)]
ector: Fix precomp layer rendering issue when it has alpha value
Summary:
When the precomp layer(parent layer) has alpha transparency and has more than 1 child layer
and they overlap each other if vg object just propagate the alpha to child layer
it will be applied twice in overlapped area.
Even if the child layer does not have alpha transparency, parent alpha is applied to each child.
Test Plan: N/A
Reviewers: Hermet, smohanty
Reviewed By: Hermet
Subscribers: cedric, #reviewers, kimcinoo, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9072
Change-Id: I67e1fd3781050fc4427011865f8801998b530e52
Shinwoo Kim [Wed, 19 Jun 2019 01:28:34 +0000 (10:28 +0900)]
evas filter: make curve work for every
Summary:
If an input buffer and an output buffer for the curve filter are same, it reads
and writes to the same texture which behavior is not defined. I could not find
good reference for this, but following could be a reference.
https://stackoverflow.com/questions/
11410292/opengl-read-and-write-to-the-same-texture
The texture gets 0 color value as a result. So the curve filter does not work.
This patch makes the curve filter use different input and output buffer.
Test Plan:
This attached file could explain what 'read and write to the same texture' is.
{
F3724537}
Reviewers: Hermet, jpeg, jsuya
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9085
Marcel Hollerbach [Tue, 18 Jun 2019 16:22:54 +0000 (12:22 -0400)]
efl_ui_spec: Support running with CK_FORK=no
Summary: this was simply not tested before. But works now.
Reviewers: zmike, segfaultxavi
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9109
Vincent Torri [Tue, 18 Jun 2019 12:22:05 +0000 (13:22 +0100)]
define HAVE_REALPATH in evil_stdlib.h
Summary: instead of relying on build system, define HAVE_REALPATH in Evil header file
Reviewers: zmike, raster, cedric
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9107
Vincent Torri [Tue, 18 Jun 2019 12:07:26 +0000 (13:07 +0100)]
Ecore net dialer Windows example: fix undeclared symbols
Summary:
missing symbols :
efl_net_dialer_address_dial_get
efl_net_socket_address_remote_get
efl_net_socket_address_local_get
EFL_NET_DIALER_EVENT_DIALER_CONNECTED
EFL_NET_DIALER_EVENT_DIALER_RESOLVED
EFL_NET_DIALER_EVENT_DIALER_ERROR
EFL_NET_DIALER_WINDOWS_CLASS
Test Plan: compilation
Reviewers: zmike, raster, cedric
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9106
Carsten Haitzler (Rasterman) [Tue, 18 Jun 2019 10:21:13 +0000 (11:21 +0100)]
ecore_x - restore move event skipper that was removed long ago
so i've been wondering what is going on for a few days... and i've
figured it out finally... my mouse seems ot like to generate 1000
events per second. not your usual 100 or 200. it only happened on this
one machine so i was wondering what on earth was up. this machine was
different in other ways like an arm cpu, differing gpu (rx550),
different distro and so on. this is creating a storm of motion events..
and this is causing all sorts of overhead in just trying to deal with
them all like generate more internal events, emit signals for every
one of them and so on. there is no attempt to play catch-up or
anything - just build up a bigger and bigger queue of them to deal
with. this is NOT GOOD. this restores our old commented out event
skipper that got commented out during some xcb work actually -
not on its own. it was a huge xcb patch that commented it out.
this restores it and makes it a little cleaner with a bool and now the
perf issues i was seeing are gone. this is such a major performance
fix that this deserves a backport.
@fix @optimize
Carsten Haitzler (Rasterman) [Mon, 17 Jun 2019 08:09:06 +0000 (09:09 +0100)]
example - use LC_ALL not LC_MESSAGES for windows examples to build
so they don't need evil anymore. should help vtorri + windows
port/support.
Carsten Haitzler (Rasterman) [Mon, 17 Jun 2019 08:08:24 +0000 (09:08 +0100)]
example - use putenev, not sentenv to be more portable
yes - it's much more code too. that's life with putenv().
Carsten Haitzler (Rasterman) [Sat, 15 Jun 2019 08:38:06 +0000 (09:38 +0100)]
evas optimization - fix the "start in list middle" case
i missed 1 rare case where we start in the middle of the list and have
to walk to the end. testing didnt show it up. fix. this fixes up that
case in
b5ed76ba9f22ea659e9e6a3daa32c68354920455
Carsten Haitzler (Rasterman) [Sat, 15 Jun 2019 08:31:51 +0000 (09:31 +0100)]
optimize - avoid eina_inlist_last where not needed
really minor places.
Carsten Haitzler (Rasterman) [Sat, 15 Jun 2019 08:19:20 +0000 (09:19 +0100)]
evas - pointer in get - dont On walk inlist but O1 jump to last
to walk inreverse we need to jump to last first then walk backwards...
what we were doing is calling eina_inlist_last() which is defined to
walk rather than that using list->last ... this totally got rid of
_evas_event_object_list_raw_in_get() from my perf list ... and i was
wondering how it got there to start with.
this is such an obvious optimization...
Carsten Haitzler (Rasterman) [Fri, 14 Jun 2019 23:33:08 +0000 (00:33 +0100)]
edje messages - use trash to keep message structs around for a short time
more optimizations for edje messages to avoid excess alloc and frees
if we have some trash around... since messages already have list
nodes, re-use the main list node for storing trash and not eina trash
as this avoids extra allocs for trash nodes.
Carsten Haitzler (Rasterman) [Fri, 14 Jun 2019 23:06:42 +0000 (00:06 +0100)]
edje messages - on del use the per edje message list not global
this massively cuts the walk to remove messages to only what's needed
on teardown ... so yay! speedup.
Carsten Haitzler (Rasterman) [Fri, 14 Jun 2019 22:55:53 +0000 (23:55 +0100)]
edje messages - avoid nasty On2 walk of message lists with skipping
so to process a single obj we added a lot of mesgs to the message
queueue only then to wak most and SKIP most msgs again and again -
when this adds up to 1000's of messages and 10k+ then literally moving
a window in e hangs for multiple seconds and we walk such lists in On2
like complexity. this gets it down to O(1) along with some other minor
optimizations of not adding to tmp list only then to add them to the
nex queue/list.
there is more i can optimize here as well now we track messages for an
edje in th edje. that's next.