path: root/src/lib/evas (follow)
AgeCommit message (Collapse)Author
2018-12-18efl_canvas_surface: change mixin to abstractJaehyun Cho
Summary: If Efl.Canvas.Surface is changed from mixin to abstract, then its sub classes do not need to inherit from Efl.Object to be a class. Moreover, Efl.Canvas.Surface's data can be derived to its sub classes easily. Reviewers: jpeg, segfaultxavi, woohyun, Hermet Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2018-12-17evas vg: remove redundant function code.Hermet Park
2018-12-15evas gl - make GLintptr etc. also ndefed for GL_VERSION_1_5 fix typedefCarsten Haitzler (Rasterman)
It seems that GL_VERSION_1_5 define == these provided by gl already. At least reading the mesa headers I do, so this should fix T7502 @fix
2018-12-14evas_render: Ignore objects on planes for renderingDerek Foreman
We want to pretend they're just not there at this point since the hardware is responsible for drawing them. Signed-off-by: Derek Foreman <> Reviewed-by: Cedric BAIL <> Differential Revision:
2018-12-14evas_render: Ensure proper rendering when objects are on planesDerek Foreman
If only objects on planes change, we don't see any damage for the main buffer, so a page flip never occurs and the plane doesn't update. For now forcing a tiny damage area is the easy way to work around this. Also force a pixels get callback for enlightenment's surface frame callback tracking. Signed-off-by: Derek Foreman <> Reviewed-by: Cedric BAIL <> Differential Revision:
2018-12-14evas_render: Render missing bits when plane state changesDerek Foreman
When we move an object into or off of a plane, we need the scene to be rendered as if the object wasn't there. This adds apprpopriate damage to make that happen. Signed-off-by: Derek Foreman <> Reviewed-by: Cedric BAIL <> Differential Revision:
2018-12-14evas_render: Move plane setup codeDerek Foreman
Put this at the start of render so we can remove stuff on planes from the scene graph entirely. This stops us from drawing the entire object underneat the plane. Signed-off-by: Derek Foreman <> Reviewed-by: Cedric BAIL <> Differential Revision:
2018-12-14evas_render: Refactor plane codeDerek Foreman
It's just tidier this way. Signed-off-by: Derek Foreman <> Reviewed-by: Cedric BAIL <> 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-08evas cpu - just rely on eina cpu entirely to avboid feature dupsCarsten Haitzler (Rasterman)
so evas cpu used to be the thing then eina cpu came and did the same and evas cpu optionalyl could lsit on top... just move it all to eina cpu so one central place does this and evas_cpu is purely a compat wrapper.
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
capsulate vector file data from efl canvas vg. hide vector file data structure, capsulate it, cut off the dependency by vector object. yet it has evas_cache_entry interface.
2018-12-07evas vg: code refactoring.Hermet Park
keep internal variable and structre names consisteny. no logical changes.
2018-12-07evas vg: code refactoring.Hermet Park
make code clean and neat, no logic changes. use macro to reduce lines. rename ambiguous internal variables. remove unused variables.
2018-12-07evas vg: remove unused internal functionHermet Park
Vector can't return image data yet. This function is useless.
2018-12-06evas - cpu - fix sve check when neon is disabled...Carsten Haitzler (Rasterman)
2018-12-06canvas: disable an eolian-style api referenceDaniel Kolesa
This references a file that is not being installed, so the eo file will fail to parse when used as a system-wide .eo file. Introduced in 05682eed7d572874928424af82fba819790c4228. Fixes T7495.
2018-12-06doc: remove since_tizen.Hermet Park
This tag must be valid for only tizen world.
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-29evas cache image: compare with cached image fileShinwoo Kim
As cache2 knows cached image could be not matched even though hash key is not different. Please refer to the following comment of evas_cache2_image_open. /* image we found doesn't match what's on disk (stat info wise) * so dirty the active cache entry so we never find it again. this * also implicitly guarantees that we only have 1 active copy * of an image at a given key. we wither find it and keep re-reffing * it or we dirty it and get it out */ The hash key is created base on the image file address. If the image file address to find does not equal cached image file address then it means that the cached image is no longer valid. This case could happen with the following step. (1) Call evas_object_image_memfile_set with content data A (2) Call evas_object_image_memfile_set with content data B (3) Add timer with short time (ex: 0.01 sec) (4) Delete A image, and add A image in timer callback (5) Delete B image, and add B image in timer callback Sometimes you could see image of A from the B image, because newly created image at step 5 has same address of setp 1. Reviewed-by: Cedric BAIL <> Differential Revision:
2018-11-28eo-docs: Remove Doxygen tags from efl*.eo filesXavi Artigas
Summary: - Replace '\@ref name' with '@name' - Remove unused \@internal tag This tag affects text AFTER it, and there is no text after it. - Remove \@note tag Replaced with a simple NOTE: text, since eolian does not have an equivalent tag. - Remove spurious \@Efl... tags They should really be @Efl... - Remove \@p tags There is no eolian equivalent, and a simpler $ suffices in this case. Fixes T7482 Reviewers: q66 Reviewed By: q66 Subscribers: cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T7482 Differential Revision:
2018-11-28evas vg: add one comment todo.Hermet Park
2018-11-28evas ector: Replace renderer preparation responsibility.Hermet Park
Replace fill/stroke renderer preparation of shapes to canvas vg, These renderer now is triggered by their own instances.
2018-11-28ector: remove quality option.Hermet Park
This option is empty, useless. No plan to support it.
2018-11-27Revert "evas map: calc map geometry when it is out of screen"Hermet Park
This reverts commit 8a7817cdd9e3a347c301370c2d401a4c5691b6d8. Sorry, I didn't intend this patch...
2018-11-27evas map: calc map geometry when it is out of screenShinwoo Kim
Summary: The map geometry(>normal_geometry) is calculated only if evas_render_updates_internal_loop calls evas_render_mapped as below. evas_render_mapped -> evas_object_map_update -> evas_object_map_update -> _evas_map_calc_map_geometry If the mapped object is not on screen, then evas_render_updates_internal_loop does not call evas_render_mapped, because the mapped object is not active. The mapped object is not active(i.e. is_active is 0) always because cache.clip data including visilbe and geometry is not updated after the object goes out of screen. Usually the unmapped object updates its cache.clip data with updated geometry even though it is out of screen as below. _efl_canvas_object_efl_gfx_entity_position_set -> evas_object_recalc_clippees -> evas_object_clip_recalc -> evas_object_clip_recalc_do So the mapped object geometry(>normal_geometry) should be updated in evas_object_clip_recalc_do if it is out of screen. Test Plan: Sample code {F3455674} {F3455673} {F3455672} {F3455671} Reviewers: Hermet, jypark Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2018-11-23efl_interpolator: change Efl.Interpolator class to interfaceJaehyun Cho
Since Efl.Interpolator's subclasses are used as interpolator class, Efl.Interpolator class is changed to be an interface. This change allows Efl.Canvas.Animation to have Efl.Interpolator as its property in efl_canvas_animation.eo.
2018-11-23evas vg: rename evas_vg prefix to efl_canvas for consistency.Hermet Park
2018-11-22Remove duplicated interface inheritance in eoYeongjong Lee
Summary: Delete unnecessary interface inheritance Efl.Ui.Base ==> Efl.Ui.Widget - Efl.Canvas.Group - Efl.Canvas.Object - Efl.Ui.Base Efl.Text_Cursor ==> Efl.Text_Markup - Efl.Text_Cursor Efl.Pack_Layout ==> Efl.Ui.Box - Efl.Pack_Layout Efl.Ui.Translatable ==> Efl.Ui.Layout - Efl.Ui.Widget - Efl.Ui.Translatable Efl.Part ==> Efl.Ui.Widget - Efl.Part Efl.Ui.View ==> Efl.Ui.Layout.Object - Efl.Ui.View Efl.Access.Value ==> Efl.Ui.Spin - Efl.Access.Value Efl.Gfx.Buffer ==> Efl.Canvas.Image_Internal - Efl.Gfx.Buffer Efl.Canvas.Pointer ==> Efl.Ui.Widget - Efl.Canvas.Group - Efl.Canvas.Object - Efl.Canvas.Pointer Efl.Gfx.Size_Hint ==> Efl.Ui.Widget - Efl.Canvas.Group - Efl.Canvas.Object - Efl.Gfx.Size_Hint Test Plan: make check Reviewers: Jaehyun_Cho, Hermet, woohyun, segfaultxavi Reviewed By: Jaehyun_Cho, segfaultxavi Subscribers: segfaultxavi, cedric, #reviewers, #committers Tags: #efl Differential Revision:
2018-11-21evas_object_image: fix cutout bug related with opaque objectJiyoun Park
Summary: condition: 1. full size rect 2. upper side, if there is same size image object and image object preload state is EVAS_IMAGE_PRELOADING. below rect cannot be rendered because upper image object was added to cutout area event though image object is not opaque. so fix opaque check function return false for opaque state of preloading image. Reviewers: Hermet, raster Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2018-11-21evas vg: Check for OOM when setting root node in a vg canvasBryce Harrington
2018-11-21evas vg: Check for OOM in evas_cache_vg_entry_createBryce Harrington
2018-11-21evas vg: fix indentation.Hermet Park
non-logical changes.
2018-11-21evas vg: set update dirty region properly.Hermet Park
zero sized dirty region is insane, it must be size of vg area.
2018-11-21evas vg: update render properly.Hermet Park
If tree viewport is changed, vg visual must be updated, This checks internal changed flags to update next frame. @fix
2018-11-21evas vg: code refactoring.Hermet Park
This doesn't change any logics. just renamed internal variables and functions.
2018-11-19evas rect update calculation - account for clipped color changesJiyoun Park
Summary: if clipped color changed and not object color on rect objects, then the updates could be missed. This bug seems to have been here a while unnoticed. Reviewers: Hermet, raster Reviewed By: Hermet Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2018-11-18Canvas text: emit 'changed' event on markup setDaniel Hirt
2018-11-16meson: cleanup the native-cpu optimization build codeMarcel Hollerbach
you were not able to disable the header checks, so if the header was not there it indicated that you could turn it of. However, the option check was in the has_header if not outside of it. Further more, header checks are done in the subdirectory that is done for header checks, unneccessary cpu_**** flags are removed, global optimization options are added to the global_arguments instead of just the package_c_args, which leads to the fact that also all binaries etc. are build by default with those optimization flags. This also reduces the amount of options to a minimum of 1 option, to just control if there should be the optimization or not. This also changes from host_maschine to target_mschine, since we probebly want to enable the optimization for the target maschine, not the host. Differential Revision:
2018-11-14evas ector: fix memory leaks.Hermet Park
Summary: Make it sure ref/unref pairs. unpaired reference count occures object dangled. @fix Reviewers: #committers Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2018-11-14evas vg: optimize gradient sequences.Hermet Park
Summary: 1. Pointed out gradient prepare step triggered duplicatedly, because they are immediate children of container. But gradients is desigend to fill shape, shape could get ready of the gradients which are applied to. So, container doesn't need to prepare gradient children. 2. Ector shape does prepare its gradient renderer in it's prepare time, each gradients objects doesn't need to prepare renderer separately. Here code skip duplication of sequences of gradients preparation step. by cleaning up logic. Reviewers: #committers Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2018-11-14evas textblock: remove white space after line-break by a next itemYoungbok Shin
Summary: In some cases, white space at end of line is remained after line-break. This issue is happened when Textblock do word wrap at the next item. Without spliting a previous text item. Then, Textblock just skipped calling _layout_item_text_split_strip_white() function. This patch also fixed a wrong test case based on wrong logic. The range rectangles shouldn't be overlapped. Because of remained white space, a meaningless rectangle was added. And it overlapped by next rectangle. @fix Test Plan: Fixed an exising test case for range renctangles. Run test case. Reviewers: herdsman, woohyun, raster, cedric, subodh, subodh6129 Subscribers: #reviewers, #committers Tags: #efl Differential Revision:
2018-11-13doc: Fix misuse of $ instead of @ in commentsXavi Artigas
$ renders the next word monospaced whereas @ turns the next word into a link.
2018-11-12Revert "meson: fix a potential race in evas_opt build"Carsten Haitzler (Rasterman)
This reverts commit 32b79c7986a188ac17a5b8e18446e8221ad01fc4. don't need eo as a dep anymore as i unlinked eo from the sse opt build
2018-11-12build - evas - sse3 optimized code - decouple from eoCarsten Haitzler (Rasterman)
2018-11-12meson: fix a potential race in evas_opt buildDaniel Kolesa
We need to declare dependencies for .eo file generation to prevent compiling files depending on generated files before they are generated.
2018-11-09evas textblock - fix unused params/varsCarsten Haitzler (Rasterman)