path: root/src/lib/evas (follow)
AgeCommit message (Collapse)Author
2015-11-01Eo: Partial implementation to remove eo_dodevs/felipealmeida/eo_optimisationsFelipe Magno de Almeida
2015-10-17evas - clean if check to be a single return point for clarityCarsten Haitzler (Rasterman)
if (a) return; if (b) return; -> if ((a) || (b)) return;
2015-10-16evas - add another layer->evas check in addition to layerCarsten Haitzler (Rasterman)
fixes T7215
2015-10-15evas - was missing evlogs for the threaded rendering handling - fixCarsten Haitzler (Rasterman)
2015-10-15evas: render - use evas_object_clipees_has instead of evas_object_clipees_getAmitesh Singh
evas_object_clipees_has is far cheaper than evas_object_clipees_get in case of checking if clipees exist or not. This should improve the performance in case of large set of clipees. @fix
2015-10-14evas: no need to compute clippees list if we just want to know if there is any.Cedric BAIL
This is a partial fix for a terrible performance scenario where application take forever to close with a large number of edje object. @fix
2015-10-14evas filter: silent coverity on self assignmentAmitesh Singh
This is a false alarm. Just to make coverity happy, use eo_do instead of eo_do_ret CID: 1316017
2015-10-14evas: Fix clang warning for missing field 'async' in default_stateChris Michael
Evas_Object_Filter_Data has a bool for 'async' at the end of the struct. This field was missing from the initialization of 'default_state' @fix Signed-off-by: Chris Michael <>
2015-10-14evas - obj destructrion - handle when obj layer is partly destroyedCarsten Haitzler (Rasterman)
this should fix T2715 and anything similar as during destruction object internals are a bit weird.
2015-10-14evas - fix evlog to push and pop properlyCarsten Haitzler (Rasterman)
2015-10-14Evas: Some coverity fixesJean-Philippe Andre
This are false alarms. But the explicit null check doesn't hurt. Also, Coverity doesn't like eo_do_ret. Neither do I. :) - CID 1327246 - CID 1327245
2015-10-14Evas render: Fix proxy source_clip with source imagesJean-Philippe Andre
In case the source is an Evas_Image, we skip proxy_subrender, and so the clip was not set against the source clip.
2015-10-14Evas render: Fix proxy source_clip logic inversionJean-Philippe Andre
As spotted by @FurryMyad I inverted the logic for source_clip. This should restore the proper behaviour while keeping my previous fixes working. See D2940.
2015-10-13evas: fix performance regression by reducing the unecessary memcpy we are doing.Cedric BAIL
Actually copying max is pretty useless and super slow. We usually have something like 1024 slot in a context, but a very small amount of them are acutally active. It would be better to actually do some kind of copy on write technique here, but as Eina_Cow doesn't handle array and we are close to a release, let's be conservative.
2015-10-12Evas filters: Fix some build warningsJean-Philippe Andre
Thanks Tom for spotting one of those
2015-10-12Evas filters: Fix some crash and reduce insanityJean-Philippe Andre
In a rare situation the filter would access an invalid buffer. Solution: Stop messing with buffer references by properly referencing and releasing them when not needed, rather than stealing references and hoping for the best. (There were flags tracking stolen references, but that was still madness)
2015-10-12Evas: Add engine function image_refJean-Philippe Andre
This is to simplify and fix filters. This is an internal function.
2015-10-12Evas filter: Fix proxies of filtered imagesJean-Philippe Andre
2015-10-12Evas render: Don't render deleted / invisible snapshotsJean-Philippe Andre
Don't render them. They are not visible
2015-10-12Evas render: Minor debug code improvementsJean-Philippe Andre
2015-10-12Evas snapshot: Fix proxies of snapshot objectsJean-Philippe Andre
This was broken because the wrong image size was used in the proxy's fast path (proxy of another image). Why did snapshot use a specific surface_w,h instead of reusing the usual cur->image.w,h? (@cedric) Simplify code.
2015-10-09evas_canvas3d: fix mesh being added twice added to scene dataOleksandr Shcherbina
Summary: @fix Reviewers: cedric, Hermet Subscribers: cedric Differential Revision: Signed-off-by: Cedric BAIL <>
2015-10-07Evas filters: Fix crash with async sw renderingJean-Philippe Andre
If the filtered object (text or image object) was deleted, its output image (cached inside the filter data) would be freed immediately. This could cause crashes in case of async rendering. @fix
2015-10-07Evas textblock: Force relayout during proxy renderJean-Philippe Andre
If the textblock object was not visible in the main canvas, but still needs to be rendered in a proxy surface, then _relayout may not have been called. This forces generation of paragraphs based on the current geometry. This patch is ugly. I know. This is evas render :)
2015-10-07Evas render: Fix another bad proxy clipping issueJean-Philippe Andre
This is an ugly hack to fix an issue reported in D3114. I don't understand how the proposed patch could even fix anything given the current situation. Test case: - Create edje object with textblock inside - Clip out edje object (--> all children become not visible) - Take textblock from edje and set it as source of a proxy - Mark proxy as source_clip Result: Nothing visible. Expected: Proxy should contain the textblock object, since source_clip means we ignore the edje object's clipper, and only care about the textblock's clipper (entire canvas). Here's what was happening: - During a first pass, textblock is not visible, cur->cache.clip is calculated, marked as clip_use=1 with geom 0,0 0x0 - In a second pass, the proxy is rendered, which needs to draw the textblock in a surface. But cache.clip was used and it was wrong. Solution: - Ignore cache.clip when rendering inside a proxy. I'm pretty sure there are other instances where cache.clip will still be a problem. Problem: textblock never called relayout since it was not visible. Conclusion: cache.clip needs to die. It's a legacy optimization that now causes more issues than it fixes.
2015-10-06Evas image: Fix wrong usage of engine data macroDongyeon Kim
ENDT macro should be passed to engine functions instead of some other function pointer! @fix
2015-10-05evas - region updates - go back to tiler as its fasterCarsten Haitzler (Rasterman)
the overhead didnt show up in y tests. do show up with certain expedite tests. hmmm. last time i messed with region code it was actually same speed as tiler. bonus was it was fully accurate.
2015-10-05evas rectangle - ensure centers of rects that just move/resize dont rendCarsten Haitzler (Rasterman)
calculating updates has been re-rendering centers fo solid rects if the solid rects moves/resizes with a lot of overlap and objects underneath changes - their changes show through. this fixes that @fix
2015-10-05evas - cutouts - use less cpu by skipping non-intersecting cutout objsCarsten Haitzler (Rasterman)
2015-10-04evas-3d: fix primitivesperepelits.m
Summary: There were warnings after adding primitive in the same frame more then once, the check was added to avoid it @fix Reviewers: cedric, raster, Hermet Subscribers: cedric, artem.popov Differential Revision: Signed-off-by: Cedric BAIL <>
2015-10-04evas_box: fix children size and position calculation when padding is used ↵Subodh Kumar
for horizontal flow layout Summary: Fix children size and position calculation when padding is used For each child size calculation padding is adjusted but box height should include padding. Secondly, x and y position of children should not include the vertical and horizonatal padding as child size has already included the given paddings. @fix Test Plan: Please modify test_box.c file in function test_box_vert2 as follows: bx = elm_box_add(win); evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, bx); elm_box_padding_set(bx, 50, 50); elm_box_layout_set(bx, evas_object_box_layout_flow_horizontal, NULL, NULL); evas_object_show(bx); Now, 1. open elementary_test 2. box 3. Box vert 2 (observe box is broken) 4. Try resizing the window (observe) Reviewers: raster, cedric Reviewed By: cedric Subscribers: cedric Differential Revision: Signed-off-by: Cedric BAIL <>
2015-10-04evas render - async sw - fix context duplication by using proper dup callCarsten Haitzler (Rasterman)
valgrind pointed this one out. we access freed memory when we dup a context because the context CONTAINS ptrs to things like rects for cutouts. we didnt dup these. use the proper context dup call (and properly ref pixman color image too). this was a random bug/crash waiting to happen and valgrind caught it. suprising it hasnt turned up before :/ @fix
2015-10-02Evas GL: Fix render: force pixel_get if dirtyJean-Philippe Andre
All examples and docs point to using only the dirty flag in order to trigger a redraw of an Evas GL surface. The commit 21c43528234 broke this behaviour (for a good reason, but not related to Evas GL). This is a compatibility fix.
2015-10-02Evas GL: Add new API to get current Evas GLJean-Philippe Andre
While this seems to go against the rest of the API (because we always pass in the Evas GL object), there is no way right now fully restore a context if there are multiple Evas GL objects. For instance, an app can use Evas GL from an Elm GLView, and also use Cairo with another Evas GL at the same time. In that case Cairo needs to restore the previous Evas GL but the library had no way of getting the current Evas GL. This is the equivalent of eglGetCurrentDisplay(). @feature
2015-10-02Evas image: Simplify updates if adding whole region at onceJean-Philippe Andre
2015-10-01Evas filters: Fix handling of FILL for image filtersJean-Philippe Andre
Note: Image filters still need a LOT of work to be usable.
2015-09-29evas: fix typos in documentationAmitesh Singh
The old naming is inconsistent with the rest of the EFL. This fixes that. Since we are already breaking ABI (and possibly API), we should fix this too.
2015-09-28Eo: Drop doc field from ops and events.Tom Hacohen
This hasn't been used for a while. Since we are going to break Eo a bit anyway it's a good opportunity to drop this. This may cause a slight performance issues with legacy events, such as smart callbacks. This shouldn't really be a problem as we've migrated away from them. If it does, we need to migrate the remaining parts. Only relevant for callbacks that are added before the classes are created, which shouldn't be possible except for smart, only for old evas callbacks.
2015-09-28evas - protect against invalid obj id in legacy wrapper funcCarsten Haitzler (Rasterman)
2015-09-28evas - lock render updates as this happesn to be accesed from threadsCarsten Haitzler (Rasterman)
2015-09-25evas image object - dont update just if image is dirtyCarsten Haitzler (Rasterman)
marking images as dirty is only meant to have the pixle get callback called IF rendered. you ADD update regions to get it to be called. this is how it has always meant to work, but evas image objects where adding updates just if dirty. this ends up with e as a compositor redrawing ENTIRE eindows if even a single blinking cursor is blinking. oh so bad. @fix
2015-09-25fix coverity complaint (not real bug) - CID 1324882Carsten Haitzler (Rasterman)
coverity complained on the n <=- 0 return. it will never be <= 0 if rects2 is non-null. this just should make coverity less noisy.
2015-09-24Evas smart: Add obj type safety check to callback_del.Mrunal Sovani
Summary: Evas_Smart_Data retrieved from eo_data_scope_get might be NULL in case the input Evas_Object is not valid Evas_Object. The smart data gets dereferenced and can cause a crash if its NULL Hence return in case smart data is NULL. @fix Signed-off-by: Mrunal Sovani <> Reviewers: raster, Hermet, tasn Reviewed By: tasn Subscribers: singh.amitesh, cedric, Differential Revision:
2015-09-24evas - make new exact regions round up to 16x16 to keep count saneCarsten Haitzler (Rasterman)
make region count sane by rounding to 16x16
2015-09-24evas cutouts - optimize to use less cpuCarsten Haitzler (Rasterman)
this optimizes draw ctxt cutouts by skipping small ones and remembering the last cutout added so it isn't double-added as well as extending the minimum cutout array to 512 and going up in blocks of 512 instead of 128. also optimize the clipping code a bit more.
2015-09-24evas tiler update handler - move to region code to be accurate and fastCarsten Haitzler (Rasterman)
this move evas tiler that does update handling to use fully correct regions using region.[xh]. this also removed old unused regionbuf code and a bunch of commented out code no longer needed. much simpler now and easier to maintain.
2015-09-24evas new region code - copy region size along with region mathCarsten Haitzler (Rasterman)
2015-09-21evas_canvas3d: sets for shadow renderingOleksandr Shcherbina
Summary: Add possibility change quality and offsets for shadow. Add mesh API's to sets size, step and bias constant. Add scene API to sets depth values. Reviewers: Hermet, cedric Reviewed By: cedric Subscribers: cedric Differential Revision: Signed-off-by: Cedric BAIL <>
2015-09-21evas: remove unused variable in evas_tangent_space_get.perepelits.m
Summary: Firstly it was the main point of in CID1323089 from Coverity, but this variable is unused. So I've deleted it. CID1323089 Reviewers: raster, Hermet, cedric Reviewed By: cedric Subscribers: cedric Differential Revision: Signed-off-by: Cedric BAIL <>