path: root/src/lib/evas (unfollow)
AgeCommit message (Collapse)Author
2013-12-26efl: Unified eina critical manro to CRI.Daniel Juyung Seo
Being annoyed by different types of eina critical macros - CRI, CRIT, CRITICAL -, I concluded to unify them to one. Discussed on IRC and finally, CRI was chosen to meet the consistency with other macros - ERR, WRN, INF, DBG - in terms of the number of characters. If there is any missing bits, please let me know.
2013-12-26evas: limit how many times we walk over items.Cedric BAIL
This does help for some textblock benchmark with a speed increase of 12% and the one that don't get better don't get slower either, so let's put that in.
2013-12-22evas - redraw the map surface if one of the children has been still changed map.ChunEon Park
2013-12-20evas - removed unnecessary doc infoChunEon Park
2013-12-20evas render2 - more work on basicsCarsten Haitzler (Rasterman)
2013-12-20evas: fix compilation issue on Jenkins windows that make me wonder how it ↵Cedric BAIL
does build on Linux.
2013-12-20evas: patched evas_map_image.c to use NEON codeYury Usishchev
Reviewers: cedric, raster CC: cedric Differential Revision: Signed-off-by: Cedric BAIL <>
2013-12-20evas - render - clear out pending object array more aggressivelyViacheslav Lvov
There was detected that pending_objects array of Evas structure of email application stores at least 550 objects that never are removed from this array. These objects are not active and are not about to render. We know that once the decision not to remove changed objects from this array was accepted. But then the criterion of leaving object in this array was weakened. We propose to weaken this criterion more sufficiently – do not store in this array objects that can not be cause of whole canvas invalidation. Our exact proposal for this criterion you can see in the patch attached to this issue. NOTE: This patch is a try, there may be some side effect especially with mapped object that we didn't find, so it could be reverted if before the release of 1.9 we see anything wrong. Reviewers: cedric CC: cedric, seoz Differential Revision: Signed-off-by: Cedric BAIL <>
2013-12-20render2 - workCarsten Haitzler (Rasterman)
2013-12-19first steps to rewriting evas render... a long path.Carsten Haitzler (Rasterman)
2013-12-19evas/map - ensure map updation.ChunEon Park
for more gurantee to update map properly, we should reset the map changed flag after the map updation is performed. this will fix a mapbuf bug that map is not updated. when the map is changed without rendering but it's in the active object list, the map updation couldn't be happened later that map is rendered. (if the map is not updated at this frame)
2013-12-19Revert "evas/map - commeted out insane compare."ChunEon Park
This reverts commit b259cfafe5a758b219f0e80256653358a6a6d62b. my fault. the compare is reasonable.
2013-12-19evas/map - commeted out insane compare.ChunEon Park
cedric, is it just typo?
2013-12-18evas - tiler - fix missing clip of first rect to outbuf sizeCarsten Haitzler (Rasterman)
stable release - cherry-pick me!
2013-12-16Evas textblock: Fixed range_deletion bug with multiple visible formats.Tom Hacohen
This makes the tests added in 8bee8853ae1e38823ee0dbcac1643d23c3e34379 pass. Thanks to Youngbok Shin for reporting.
2013-12-14evas common - uninitialized use warning removeCarsten Haitzler (Rasterman)
2013-12-13Evas textblock: Fixed deletion of ranges ending with visual formats.Tom Hacohen
This is a regression introduced in: 3f3ad67616d491c40e4c7c34d3927896f80b8caa
2013-12-13evas - common - remove useless new as next call allocs if NULLCarsten Haitzler (Rasterman)
2013-12-11evas - font dir - remove from hash before free/delCarsten Haitzler (Rasterman)
this addresses CID 1039889 but was otherwise harmless
2013-12-11evas - textblock - fix dbg_info_get to avoid leak if root is NULLCarsten Haitzler (Rasterman)
fixes CID 1040007
2013-12-10Evas textblock: Fix crash with empty markups valuesJean-Philippe Andre
Markup parsing will segv if a value string is empty, as in "<style=>". Sure, this is invalid, but hey, it could definitely be used from an app or even by a user writing his own markups :) The internal doc says this function expects an item to be of the form "key=val" but there are no checks beyond the presence of "=" in the string before calling it.
2013-12-09Evas textblock: Slightly improve paragraph items freeing.Tom Hacohen
Use the EINA_LIST_FREE macro instead of a safe loop and a list free. This is faster and cleaner.
2013-12-09Evas/cserve2: Fix crash during shutdownJean-Philippe Andre
If an image failed to load, and cserve2 returned an error message, then the File_Entry was freed, but not removed from the hash. Solution: remove entry from the hash, let the callback free the data.
2013-12-08Revert "evas/render - make sure render pre in proxy rendering."ChunEon Park
This reverts commit b113f555e0ea0b0261ad870fca35d427a415c20e. found side effect... revert this code until fix them.
2013-12-08evas/render - make sure render pre in proxy rendering.ChunEon Park
if the some of children are the mapped object in source object tree as well as the the mappped object is invisible, then they wont be render_pre() called. this make sure those render_pre() in proxy rendering.
2013-12-06evas - silence coverty (false positive leak)Carsten Haitzler (Rasterman)
the hash can't leak where coverty thinks... because the hash find can never work ... because the hash is empty.
2013-12-05evas - Clip mark performance improvementVostokov Sergey
stable release - cherry-pick me! We propose a patch that reduces graph traversal work in evas_object_child_map_across_mark(). It fixes a few particular slowdowns around Tizen applications, including 0.6 seconds slowdown. evas_object_child_map_across_mark() does not seem to need to recursively call itself on the same object many times. Yet we have noticed that in some scenarios it repeatedly traverses the same subtrees of objects over and over again, whenever there is more than one way of reaching these subtrees. In the production issue mentioned above, certain elm_object_part_content_set() call results in millions of recursive calls of evas_object_child_map_across_mark(), taking ~0.6sec total. We propose to allocate a hash table during top-level call to store all objects visited, and return from sub-calls instantly whenever we are called over an object we already visited.
2013-12-05evas - fix overdraw + too many rects problem found in some expedite testsCarsten Haitzler (Rasterman)
stable release - cherry-pick me! there way a problem with software rendering - it rendered some areas more than once per frame due to overlapping rectangles. it also had more rectangles to cover the same update area that it should have had. this fixes this.
2013-12-04evas/event - fix the inccorect event hit area.ChunEon Park
2013-12-03evas: bugfix in evas_render of not maintaining changed flags on object ↵Cedric Bail
correctly. This bug is particularly visible in EFM video preview ( T 539 ). The problem is that the logic for changed has evolved over time. At the beginning Evas canvas was flat and could be handle in an array. It was then not using the changed flag that much. This day, we are living with a tree and we need to propagate the changed flag to the parent, so that when we walk them we only need to walk the active objects and don't spend our time on branch that are completely static. Sadly things did collide here. We remove all object that have been rendered from the pending_objects array. That does include any smart object that was processed even if one of the child was not. Once any of the child of that not processed object is marked changed, it will be propagated up to the first parent that is changed. As the parent of that one are marked as not changed when evas_render walk the tree, he is blocked really early in the process and never get a chance to detect that the child of a not changed object did change and tada ! The fix is to add all the parent of all the object that are in the pending_objects array back into the pending_objects list. So they will always be marked as changed. Another alternative to this logic would have been to change pending_change to filter out those and keep them around. I choose the first solution as I think it will be more robust to catch all the parent in all case.
2013-12-02NEON vectorization: added use of COLSAME define in map routineCarsten Haitzler (Rasterman)
Reviewers: raster Reviewed By: raster CC: cedric Differential Revision:
2013-12-02Revert "fix smart sma by allowing more recursion"Daniel Juyung Seo
This reverts commit 1319733caeb811cd0d53b589b8a11f4229455ed3. Let's revert this patch and lower the recursion number. As we released efl 1.8, let's find the root causes of the problem and fix them. I already told this revert to raster so I am not mean :)
2013-12-01evas event freezing is "wrong" for core events - turn it offCarsten Haitzler (Rasterman)
this turns off event freezing for SOME event types for eveas canvas events (was was intended to begin with). this fixes T577
2013-12-01evas - pre/post render events are for canvas not objectCarsten Haitzler (Rasterman)
the eo event naming was wrong for pre/post render event callbacks. they are for the canvas as a whole, not per object
2013-12-01fix freetype header includes to be correct where ft 2.5.1 breaks buildsCarsten Haitzler (Rasterman)
this should fix T591
2013-11-29evas/cserve2: Fix interrupt on select in edje_ccJean-Philippe Andre
Summary: Block SIGCHLD during select(). This fixes a bug with edje_cc when EVAS_CSERVE2=1: Fixes T464. select() used to return prematurately with EINTR because the app received some unexpected signals. In particular SIGCHLD is received when a child terminates, but this is not a reason to cancel the image load. In theory, all blocked signals in pselect() should be pending until pselect returns, so any SIGCHLD should still trigger the app's signal handler. Reviewers: cedric CC: raster, cedric Maniphest Tasks: T464 Differential Revision:
2013-11-29evas: roundup the step size of an array to fit in one page of memory.Cedric Bail
This make an array stay in 4K instead of 20K before. It should reduce a little bit our peak memory usage without slowing down things to much.
2013-11-28evas - code refactoring.ChunEon Park
put the frequently used compare prior to the other.
2013-11-28evas: simplify logic for better readability.Cedric Bail
This also should solve some complain from clang static analyzer.
2013-11-28evas/line - fix the line position set problem.ChunEon Park
If the line goes to the 0, 0 then it won't be updated. Now it's fixed.
2013-11-27evas evas_render: removed unnecessary semicolon from a macro.Daniel Juyung Seo
This fixes coverity CID 1132631.
2013-11-26Evas object: Set manual_free to false once obj is detached from canvas.Tom Hacohen
This means unref will really free the object instead of just let it linger in memory once the object is unrefed. This is also correct because once detached from the canvas, Evas has nothing to do with the object and it shouldn't need the manual free anymore.
2013-11-26Evas layer: Fix deletion of canvas with still-refed objects.Tom Hacohen
This fixes the infinite loop while deleting canvases with still referenced objects. The canvas should not assume it can get rid of all of the objects. Some objects might be referenced. I also added a printf to let the user know about it. This fixes T565.
2013-11-26evas - fix the memory corruption introduced by evas fonts_zeroChunEon Park
2013-11-26evas - stop over redraw of map content with smart object.ChunEon Park
clip object would always stay in a changed state. nobody was walking them to reset. Now we do reset there state as soon as we do render them.
2013-11-25Evas textblock: Fixed wrapping of lines ending with whites.Tom Hacohen
Whites at the end of lines ending with whites should not be cut, but should be wrapped (there's no legal line break there). Thanks to Shilpa Singh for reporting.
2013-11-25evas - code refactoring.ChunEon Park
merge duplicated(almost) functions to one.
2013-11-25evas - fix proxy render to update the proxies recursively.ChunEon Park
If a proxy has proxies, all the chained proxies should be updated recursively.
2013-11-24fix smart sma by allowing more recursionCarsten Haitzler (Rasterman)
this ups the recursion allowance to 4096. it solves T494
2013-11-24evas - update extension/module loader list to match generic loaders listCarsten Haitzler (Rasterman)