path: root/src/lib/evas/include (follow)
AgeCommit message (Collapse)Author
2019-03-04efl.gfx: remove Efl.Gfx.Image_Load_ErrorMike Blumenkrantz
Summary: this is now implemented through Eina.Error ref T7718 Depends on D8066 Reviewers: cedric Reviewed By: cedric Subscribers: cedric, #reviewers, #committers Tags: #efl_api Maniphest Tasks: T7718 Differential Revision:
2019-02-27efl.canvas.object: clip -> clipper && clipees -> clipped_objectsMike Blumenkrantz
Summary: also clipees_has -> clipped_objects_count ref T7555 Depends on D8039 Reviewers: segfaultxavi Reviewed By: segfaultxavi Subscribers: segfaultxavi, cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T7555 Differential Revision:
2019-02-25efl.gfx.entity: combine show/hide events into visibility,changedMike Blumenkrantz
Summary: this requires some internal hackery to preserve legacy compatibility and correctly translate the single new event into two legacy events ref T7558 Depends on D8018 Reviewers: segfaultxavi, bu5hm4n Reviewed By: segfaultxavi Subscribers: bu5hm4n, segfaultxavi, cedric, #reviewers, #committers Tags: #efl_api Maniphest Tasks: T7558 Differential Revision:
2019-02-25efl_canvas_object: get rid of event_animation set/getMarcel Hollerbach
the API is a little bit problematic. The API takes events as an parameter. However, only the hide and show events can be used, because move for example is not intercepted, which leads to a situation that you cannot attach a translation animation to the event. Further more, handling the animations directory instead of pipeing them through events seems to be a little bit easier as the case study of the previous events have shown. Further more, we should never ever overwrite the callback_call function of a eo base object, those methods are an incredible hotpath, by the time we would have 1-2 animations on a object, the event submission would be significetly slowned down. ref T7555 Reviewed-by: Mike Blumenkrantz <> Differential Revision:
2019-02-21Rename Efl.Gfx.Map -> Efl.Gfx.MappingXavi Artigas
Summary: For clarity, since there are all kinds of maps, including a navigation map widget. Also, corrected some misspellings. Test Plan: make && make check && make examples all work Reviewers: cedric, zmike, bu5hm4n Reviewed By: cedric Subscribers: Jaehyun_Cho, #reviewers, #committers Tags: #efl Maniphest Tasks: T7564 Differential Revision:
2019-02-13efl_input: remove the API of efl_input_instance_getMarcel Hollerbach
there is basically no reason for this API. You can only use the API when you know the class, when you know the class you can also just know the function to call to get this API. The reason this API needs to go is that we don't want to use polymorphism on class-functions. ref T7675 Reviewed-by: Xavi Artigas <> Differential Revision:
2019-01-31evas_private: Fix typoDerek Foreman
Summary: Depends on D7853 Reviewers: devilhorns Reviewed By: devilhorns Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2019-01-25gesture_manager: Filter events we add hooks forDerek Foreman
Gesture manager doesn't care about focus manager events, animation events, and various other things it's currently hooking. We can save a lot of pointer indirection nonsense by only paying attention to events it can actually do something with. Differential Revision: Signed-off-by: Derek Foreman <>
2019-01-25gesture_manager: Use private data getter to save some lookupsDerek Foreman
We frequently process an array of several events at once, so we can now look up the gesture manager private data once for the entire array. Differential Revision: Signed-off-by: Derek Foreman <>
2019-01-25gesture_manager: Add a call to get private dataDerek Foreman
We end up looking this up multiple times, having a getter will sometimes allow us to get it and use it multiple times. Differential Revision: Signed-off-by: Derek Foreman <>
2019-01-16gfx: Add size hint fill (EO)Yeongjong Lee
Summary: If widget use both hint_align(HINT_FILL) and hint_max together, there is no way to set to hint_align. See, elementary_test -to '' - "Button with a quite long text." button. you can control button position using "Box align" slider, but this is not proper implementation. When there are two widget which have hint_align(HINT_FILL) and hint_max, those positions are determined by box_align rather than hint_align. it means widget align cannot be set individually. To solve this problem, this patch add hint_fill property. in order to avoid conflict with legacy API named evas_object_size_hint_fill_set(), it only works for EO widgets(made by efl_add). Also, EFL_GFX_SIZE_HINT_FILL is removed. @feature Test Plan: elementary_test -to '' elementary_test -to 'efl.ui.table' Reviewers: jpeg, Hermet, Jaehyun_Cho, raster, barbieri Reviewed By: Jaehyun_Cho Subscribers: cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T3912 Differential Revision:
2019-01-15evas_render: Remove some list walksDerek Foreman
Not that these deletes ever walk long lists, but it's trivial to stop doing it entirely. Signed-off-by: Derek Foreman <> Reviewed-by: Cedric BAIL <> Reviewed-by: Chris Michael <> Differential Revision:
2018-12-14evas_object: Add function to test if hardware plane status changedDerek Foreman
This is used to check if an object has been put on or removed from a hardware plane between calls. Signed-off-by: Derek Foreman <> Reviewed-by: Cedric BAIL <> Differential Revision:
2018-12-14evas_object: Add function to test if an object is on a hardware planeDerek Foreman
Signed-off-by: Derek Foreman <> Reviewed-by: Cedric BAIL <> Differential Revision:
2018-12-07evas ector: add software implmentation for masking feature.Hermet Park
This implementation uses Ector_Buffer to generate mask image from vg container, and pass it to Ector engine. Ector renderer could blend this image as a mask. Yet only vg container works as a mask, we could extend shape to support masking later. Still vector gl drawing is not completed, We use software ector buffer to draw on it. This is on progessing.
2018-12-07evas vg: revise basic vg cache logic.Hermet Park
There was a big trouble that vg cache didn't free cached data properly. Plus, there was a unnecessary copy of vg tree data. This revised version is a improvement of our evas vg cache in stable and optmization.
2018-12-07evas vg: code refactoring.Hermet Park
keep internal variable and structre names consisteny. no logical changes.
2018-12-03meson: use eolian_gen with -SMarcel Hollerbach
this ensures that eolian does not parse installed .eo files Differential Revision:
2018-12-03eina+evas cpu - add theoretical SVE supportCarsten Haitzler (Rasterman)
SVE is a new-ish ARM vector instruction set like neon... but with wider vectors (and variable vector sizes). this adds the flags and hwcaps checks.
2018-11-12build - evas - sse3 optimized code - decouple from eoCarsten Haitzler (Rasterman)
2018-11-09meson - add checks/options for mmx, sse3, neon, altivecCarsten Haitzler (Rasterman)
so we can build our assembly fast-paths again.... - also clean up the code a bit to match...
2018-10-31evas - fix pending object set tracking to not multi-add the same objectMarcel Hollerbach
flag if obj in pending array and don't add if already there. fixes run-away slowness in rendering in some cases
2018-10-26evas - remove excess data scope lookup during render when getting changedCarsten Haitzler (Rasterman)
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-26evas_object: Refactor pixels get hackDerek Foreman
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:
2018-10-24meson: add eolian custom dependencies supportDaniel Kolesa
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-11evas: remove redundant internal functions.Hermet Park
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:
2018-10-02here comes mesonMarcel Hollerbach
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 <> Differential Revision: Depends on D7011
2018-09-03evas image: fix a bug in image preloading.Hermet Park
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:
2018-08-30evas-common: Remove cserve2 supportChris Michael
ref T7226 Depends on D6934
2018-08-30evas cache: remove unused custom task in preload.Hermet Park
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:
2018-08-27evas cache: code refactoring.Hermet Park
rename to proper internal variables. Differential Revision:
2018-08-21evas: remove render2Mike Blumenkrantz
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:
2018-08-02Efl.Canvas.Group: use desired functionShinwoo Kim
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:
2018-07-31evas: Defer render post callbacks added during async renderDerek Foreman
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:
2018-06-14evas: make objects again delete correctlyMarcel Hollerbach
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:
2018-06-12ecore_evas: fix crash on free of smart data.Alastair Poole
pd is NULL here, adds a check before attempt to read from pd. @fix T6974
2018-05-29evas_focus: adjust to recent EFL_EVENT_DEL changesMarcel Hollerbach
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:
2018-05-24evas: make evas_object_free work in case of lost reference to Eo object.Cedric BAIL
This is clearly a workaround to a bad situation, but there is no case that I can find that solely lead to object being NULL nor is there any code that should do that, but still it does in some case...
2018-05-24evas: move the del event to match invalidate and free event to the end of ↵Cedric Bail
the destructor.
2018-05-24evas: destructor can not be called recursively, we should rely on Eo refcount.Cedric BAIL
2018-05-24evas: refactor efl_input_event and remove some of the lifecycle hack.Cedric BAIL
Differential Revision:
2018-05-13eolian: first batch of unused import removalsDaniel Kolesa
Initial results of our static analysis showed a bunch of unused imports or imports used only for documentation references. In the first case, remove entirely, in the second case, change to 'parse' in order to keep references working. The static analysis is not perfect and yields false negatives for certain cases, so there will be a second batch later.
2018-05-10evas: introduce a log domain to monitor which object gets focusMarcel Hollerbach
2018-04-24Efl.Gfx.Entity (from Efl.Gfx)Xavi Artigas
Ref Reviewed-by: Cedric Bail <>
2018-02-21Efl.Gesture: rename to Efl.Canvas.GestureMike Blumenkrantz
most C api remains unchanged ref T6714 ref T6716
2018-01-18all: Simplify definition of EAPIVincent Torri
This will help in the transition from Autotools to Meson. This has been tested on Windows for which EFL_XXX_BUILD were first introduced.
2018-01-17evas gl: Properly verify that Evas GL worksJean-Philippe Andre
For SW engine we need to verify that OSMesa is present. The patch fb048e73120b39095cc87aa4f8d7f3d397a93c56 broke the logic. Tested by temporarily removing OSMesa from my system. Fixes T6617 (again)
2018-01-16efl_playable: split Efl.Player interface to Efl.Playable interfaceSungtaek Hong
Summary: Efl.Player interface simply provides play functions, but another interface which indicates Efl.Player will play is also needed. Test Plan: Run elementary_test->Efl.Animation tests Reviewers: woohyun, conr2d, Jaehyun_Cho, jpeg, cedric Differential Revision:
2018-01-04efl: remove _MSC_VER (Visual Studio macro) usage in source codeVincent Torri
2017-12-14evas filters: Add "alphaonly" flag for blend and blurJean-Philippe Andre
This is very useful to specify precisely which kind of RGBA -> Alpha conversion you want. If all you wanted was the alpha layer to use as a mask, set this flag to true. @feature