path: root/src/modules (follow)
AgeCommit message (Collapse)Author
2019-09-19evas gl: remove unnecessary null check.Hermet Park
If we check reference validation, the rest of other usage should keep the reference check as well. Remove it since gl prorgram must be valid always here to shutdown the static analyzer reporting this suspicous logic.
2019-09-17eina: fix free support in eina OneBig mempool.Cedric Bail
We use an Eina_Trash to store freed pointer, which require the item size to be at least the size of a pointer. There wasn't any test suite enable for OneBig mempool and we never used free on a small item size... Reviewed-by: Mike Blumenkrantz <> Differential Revision:
2019-09-17eina: fix eina_mempool_from to not report pointer that have never been ↵Cedric Bail
allocated as allocated. Reviewed-by: Mike Blumenkrantz <> Differential Revision:
2019-09-17evas_vg_load_svg: Change strtod to eina_convert_strtod_c for locale issueJunsuChoi
Summary: Crash depending on LOCALE when using strtod. So change to eina_convert_strtod_c which is made to prevent strtod problem. Test Plan: N/A Reviewers: Hermet, smohanty, kimcinoo Reviewed By: Hermet Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: allow to disable tiff evas loaderBoris Faure
Summary: @fix eina benchmarks: ssize_t is defined in <sys/types.h> Reviewers: #reviewers, bu5hm4n, zmike, stefan_schmidt Reviewed By: zmike Subscribers: vtorri, cedric, #reviewers, #committers Tags: #efl Differential Revision:
2019-09-12meson: make sure evas buffer engine is built before edje_ccMarcel Hollerbach
Summary: ensure that the evas buffer engine is available. fix T8220 Reviewers: zmike Reviewed By: zmike Subscribers: zmike, cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T8220 Differential Revision:
2019-09-11ector: removed cairo backend.Hermet Park
For reducing maintainability burden, We drop supporting cairo backend. The default backend is to software implementation from now. It's well maintained so far and works good.x
2019-09-06fix xpm again - to be threaded not region decode capableCarsten Haitzler (Rasterman)
2019-09-06fix xpm loader to be threadable - fixes so much stuff...Carsten Haitzler (Rasterman)
fixes ylee's xpm loading issue... it really is just that xpm's didn't load if you preload/load from a thread... because it wass the only loader that claimed it couldnt be threaded... which it can be. @fix
2019-08-29evas -gl engines - buffer age - bring back fix for changing buffer ageCarsten Haitzler (Rasterman)
so we USED to... if buffer age changed between frames, force a full redraw and add that to the pipeline... somehow someone removed that. this brings that back as it's really needed to deal with updating correctly. @fix
2019-08-21Ecore : does not build linux-only ecore modules on WindowsVincent Torri
while tizen module is disabled and systemd is not build on Windows, upower is built and run Reviewed-by: Marcel Hollerbach <> Differential Revision:
2019-08-20evas_vg_load_svg: Support "display" attribute.JunsuChoi
Summary: If the display attribute is "none", VG object is not show. The default is "inline" which means visible and "none" means invisible. Depending on the type of node, additional functionality may be required. refer to Test Plan: [SVG] <svg viewBox="0 0 220 100" xmlns=""> <!-- Here the yellow rectangle is displayed --> <g display="none"> <rect x="0" y="0" width="100" height="100" fill="skyblue"></rect> </g> <rect x="20" y="20" width="60" height="60" fill="yellow"></rect> <!-- Here the yellow rectangle is not displayed --> <rect x="120" y="0" width="100" height="100" fill="skyblue"></rect> <rect x="140" y="20" width="60" height="60" fill="yellow" display="none"></rect> </svg> [C CODE] int main(int argc, char **argv) { setenv("ECTOR_BACKEND", "default", 1); elm_init(argc, argv); Evas_Object *win = elm_win_util_standard_add(NULL, "test"); evas_object_smart_callback_add(win, "delete,request", win_del, 0); elm_win_autodel_set(win, 1); Evas *evas = evas_object_evas_get(win); Evas_Object *vg = evas_object_vg_add(evas); evas_object_show(vg); Evas_Object *container = evas_vg_container_add(vg); evas_object_vg_root_node_set(vg, container); Evas_Object *svg = efl_add(EFL_CANVAS_VG_OBJECT_CLASS, container); efl_file_simple_load(svg, "./test.svg", NULL); efl_gfx_entity_size_set(svg, EINA_SIZE2D(600, 600)); efl_gfx_entity_visible_set(svg, EINA_TRUE); evas_object_size_hint_weight_set(svg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(svg, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_win_resize_object_add(win, vg); evas_object_resize(win, WIDTH, HEIGHT); evas_object_show(win); elm_run(); elm_shutdown(); return 0; } Reviewers: Hermet, smohanty, kimcinoo Reviewed By: Hermet Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2019-08-19evas: fix png regression issueShinwoo Kim
Accidentally commit "382c580 evas: add support for .9.png file to PNG loader." adding the 9 patch feature with small code refactoring missed a line calling eina_file_map_all taking EINA_FILE_SEQUENTIAL for data decoding. You can see the previous change adding the line from the following commit. e60baa0 evas: change mapping policy to be less agressive into loading file in memory. This is a response to the request of @cedric on D9580 Reviewed-by: Cedric BAIL <> Differential Revision:
2019-08-19make mman.h privateVincent Torri
Summary: integrate mman.h to make Evil private to the EFL, as mman.h does not exist on Windows. After a discussion with raster, i include sys/mman.h only on non Windows platform. One issue, though, is that src/modules/emotion/generic/Emotion_Generic_Plugin.h has inlined functions using mmap() Test Plan: compilation on Windows Reviewers: cedric, raster, zmike Subscribers: #reviewers, #committers Tags: #efl Differential Revision:
2019-08-19evas svg: fix svg spec compatibility.Hermet Park
Minus degree value must be transformed to the signed before Radian. It's easily tested i.e. the rotation degree is -350. @fix
2019-08-16evas: fix png regression issueShinwoo Kim
Summary: The evas_image_load_file_data_png had called png_set_tRNS_to_alpha from following commit. 6988a38 evas: fix png loader to actually produce lower resolution content when asked. You could refer to following information regarding png_set_tRNS_to_alpha which is available on page The following code transforms grayscale images of less than 8 to 8 bits, changes paletted images to RGB, and adds a full alpha channel if there is transparency information in a tRNS chunk. This is most useful on grayscale images with bit depths of 2 or 4 or if there is a multiple-image viewing application that wishes to treat all images in the same way. if (color_type == PNG_COLOR_TYPE_PALETTE) png_set_palette_to_rgb(png_ptr); if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) png_set_tRNS_to_alpha(png_ptr); if (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) png_set_expand_gray_1_2_4_to_8(png_ptr) Accidentally commit "382c580 evas: add support for .9.png file to PNG loader." adding a new feature with small code refactoring missed the line calling png_set_tRNS_to_alpha. So we got a rendering issue. It made around 75% size white rectangle using a grayscale and transparent image. I'd like to attach the image which has following type information for test purpose. $ identify -verbose ./grayscale_transparent.png | grep type -i Mime type: image/png Type: Bilevel png:IHDR.color-type-orig: 0 png:IHDR.color_type: 0 (Grayscale) Test Plan: This is the sample image file grayscale_transparent.png {F3748665} Reviewers: cedric, Hermet, jsuya Reviewed By: Hermet Subscribers: #reviewers, #committers Tags: #efl Differential Revision:
2019-08-15meson: add xkbcommon to the build depsMarcel Hollerbach
Summary: fix T8064 Reviewers: cedric, zmike, devilhorns Reviewed By: devilhorns Subscribers: #reviewers, #committers Tags: #efl Maniphest Tasks: T8064 Differential Revision:
2019-08-11evas - png loader - fix leake in error case of pixelsCarsten Haitzler (Rasterman)
fix CID 1403027 @fix
2019-08-08getenv - reduce continually calling getenv for the same vars do onceCarsten Haitzler (Rasterman)
do it once and remember the result from the first one. drops overhead for sure by a chunk i actually could see in perf reports like about 1-2% of cpu...
2019-08-08get rid of shadow variablesBoris Faure
Summary: gl: add some EINA_FALLTHROUGH Reviewers: #reviewers, zmike Reviewed By: zmike Subscribers: zmike, cedric, #reviewers, #committers Tags: #efl Differential Revision:
2019-08-07ecore evas drm - fix code that forgets to del an fd handlerCarsten Haitzler (Rasterman)
also.. note the badness of the code design mixing a global singleton with a "per struct" set of data like fd handlers for the same devices initted only once but... anyway. it's messy.
2019-08-07evas egl - esnure we always destroy surfaces because creating new onesCarsten Haitzler (Rasterman)
be sure we dont leak them.
2019-08-07evas - gl_drm - delete old surfaces before creating new onesCarsten Haitzler (Rasterman)
we shouldnt go have multiple drm window surfaces per drm surface... this is bad. @fix
2019-08-06ecore_wl2: Move ecore_wl2_window_rotation_change functions to beChristopher Michael
internal These functions are not used in efl wayland clients nor are they used in Enlightenment. As such, there is no reason that they need to be public API so this commit moves them to be Internal and updates Ecore_Evas engine code to include the internal header. ref T8013
2019-08-06efl_ui/clock: remove module interfaceMike Blumenkrantz
this was overly complex and never actually used ref T7868 Reviewed-by: Marcel Hollerbach <> Differential Revision:
2019-08-05evas image - eina file - be paranoud about double closesCarsten Haitzler (Rasterman)
tracking some seemingly not so good asan hits on the eina file where we're accessing an eina file already closed... so be extra paranoid about it and set things to null after free/close...
2019-08-05gif loader - dup eina file as we keep our own copy of it in the loaderCarsten Haitzler (Rasterman)
we didnt dup the eina file handle since we kee our own handle. we need ot do that. asan found this.
2019-08-05ecore evas drm - fix multi-dlopening of lib into symbol spaceCarsten Haitzler (Rasterman)
only load libglapi once... not multiple times by storing static ptr to lib handle. fix CID 1402692
2019-08-02ecore evas x and e sync rendering - disable as it's unusedCarsten Haitzler (Rasterman)
this has been optional and unused by e for a very long time ot try sync front-buffered software rendering with the wm/compositor. we may as well remove the bloat that is here that is unused... it's been inactive for many years anyway.
2019-08-01evas_gl: implement EvasGL ES 3.2Daekwang Ryu
add a wrapper function for glFramebufferTexture. some bugs were fixed. I tested on Ubuntu 14.04(x64) and nVidia 375 driver with VK-GL-CTS Reviewed-by: Cedric BAIL <> Differential Revision:
2019-07-31efl_ui_range_display: move events from spinMarcel Hollerbach
we concluded min,reached and max,reached should be on every widget that implements range_display. This here is the start of that work, the events are moved, next commit fixes all widgets, the last commits enables tests in the spec unit test. ref T7897 ref T7895 Differential Revision:
2019-07-31vg json: --log levelHermet Park
Vector needs to try load a lottie file in a brutal force way, If the input source is not identified.
2019-07-29efl_input_clickable: rename efl_ui_clickable to efl_input_clickableWooHyun Jung
Summary: Renamed all efl_ui_clickable_XXX to efl_input_clickable_XXX based on the discussion in T7847 ref T7847 T7976 Reviewers: zmike, bu5hm4n, segfaultxavi Reviewed By: segfaultxavi Subscribers: cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T7976, T7847 Differential Revision:
2019-07-25efl_canvas_vg svg: free the svg tree returned by eet_data_read()SubhransuSekhar Mohanty
The eet_data_read() api creates the structure by referencing the wwt data structure and reading from eet file. So the structure should be deleted by the user of the function. As eet_data_read() api documentation dosen't specify about the ownership I guess we need to free this structure to avoid memory leak.
2019-07-15evas_vg_load_svg: Support multiple gradient without <defs> partJunsuChoi
Summary: Multiple gradients can be declared. There is a problem of keeping only one gradient information when it is declared outside defs or when defs is not declared. It supports the use of multiple gradients even if no defs are declared. Test Plan: (with D9312 patch) cd src/example/edje edje_cc -beta svg.edc && gcc -o svg-test svg-test.c `pkg-config --libs --cflags evas ecore ecore-evas edje` ./svg-test Reviewers: Hermet, kimcinoo, smohanty Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2019-07-15evas_vg_load_svg: Prevent duplicate operations on radial gradient variablesJunsuChoi
Summary: This solves the problem of radial gradient being displayed abnormally when the radial gradient variables are 0 to 1. Test Plan: Sample SVG <svg xmlns="" viewBox="0 0 100 100"> <defs id="defs11"> <linearGradient id="linearGradient1" x1="0" y1="0" x2="0.2" y2="0.2" spreadMethod="reflect"> <stop style="stop-color:#ff0000;stop-opacity:1;" offset="0"/> <stop style="stop-color:#0000ff;stop-opacity:1;" offset="1"/> </linearGradient> <radialGradient id="radialGradient222" r="0.2" cx="0.3" cy="0.3" spreadMethod="reflect"> <stop style="stop-color:#ffFF00;stop-opacity:1;" offset="0"/> <stop style="stop-color:#00FFff;stop-opacity:1;" offset="1"/> </radialGradient> </defs> <rect x="0" y="0" width="100" height="100" fill="url(#linearGradient1)"/> <rect x="50" y="50" width="50" height="50" fill="url(#radialGradient222)"/> </svg> Reviewers: Hermet, kimcinoo, smohanty Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2019-07-15ecore_imf: remove code to use deprecated API in wayland immoduleJihoon Kim
Signed-off-by: Jihoon Kim <>
2019-07-12evas: add support for .9.png file to PNG loader.Cedric BAIL
This support Android 9 patch file format. Only black is a recognized color for both the stretch area and the content area. All other color are associated with being "white". Reviewed-by: Hermet Park <> Differential Revision:
2019-07-12evas: add infrastructure to feed 9 patch information from file loader to ↵Cedric BAIL
image object. This is just the plumbing that feed data provided along android 9 patch image for example into Evas object image new stretch and content region infrastructure for rendering them properly. Reviewed-by: Hermet Park <> Differential Revision:
2019-07-12evas: break Image_Loader API to allow for getting property from the data ↵Cedric BAIL
field of an image. Reviewed-by: Hermet Park <> Differential Revision:
2019-07-12evas: break Evas_Loader API and introduce a version numbering for Image_Loader.Cedric BAIL
Reviewed-by: Mike Blumenkrantz <> Reviewed-by: Hermet Park <> Differential Revision:
2019-07-10ecore_imf: deprecate ambigous or unused APIsJihoon Kim
ecore_imf_context_show ecore_imf_context_hide ecore_imf_context_control_panel_show ecore_imf_context_control_panel_hide ecore_imf_context_preedit_start_event_add ecore_imf_context_preedit_end_event_add ecore_imf_context_preedit_changed_event_add ecore_imf_context_commit_event_add ecore_imf_context_delete_surrounding_event_add Signed-off-by: Jihoon Kim <>
2019-06-27meson: add some config definitionsJongmin Lee
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 <> Reviewed-by: Vincent Torri <> Differential Revision:
2019-06-27evas svg: fix missing node opacity attribute.Hermet Park
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
2019-06-27evas svg: remove unnecessary initialization.Hermet Park
2019-06-25meson: fix building of svg / eet / json loader if its disabledMarcel Hollerbach
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 <> Differential Revision:
2019-06-21evas vector: support json loader for rlottie integration.Hermet Park
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: Co-authored-by: JunsuChoi <> {D8941} {D8944} Reviewers: #committers, jsuya, bu5hm4n Subscribers: bu5hm4n, cedric, #reviewers, #committers Tags: #efl Differential Revision:
2019-06-20efl_ui_radio: cleanup APIMarcel Hollerbach
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 <> Differential Revision:
2019-06-19build: emotion: fix lookup of gstreamer 0.10 dependencyStefan Schmidt
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 <> Differential Revision:
2019-06-19build: emotions: gstreamer: add needed ecore_x internal dependencyStefan Schmidt
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 <> Differential Revision: