path: root/src/lib/evas/canvas (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: 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-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 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 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-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.
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-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 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: create ector surface per engine instance.Subhransu Mohanty
Signed-off-by: Cedric BAIL <>
2015-09-21evas - fix whitespace in codeCarsten Haitzler (Rasterman)
2015-09-19fix typos in API docAmitesh Singh
2015-09-15evas_render: Fix invalid clipJean-Philippe Andre
Test case: elementary_test -to "Evas Map 3D" The cube was clipped to its top-left corner. What's really weird is that this code patch is for non-mapped objects.
2015-09-15evas - sw async render - move pixel upload/swap to a threadCarsten Haitzler (Rasterman)
@feature this should unload mainloop some more and have pixel upload now in a thread - same as rendering. this eeems to work where i see it so let's put this in and see with further testing.
2015-09-11evas render2 - more work on fleshing it out a bitCarsten Haitzler (Rasterman)
2015-09-10map: don't update surface unencessarily.ChunEon Park
smart object don't need to update map surface always check the state more elaborately so minus one more surface drawing!
2015-09-10efl - set thread names for internally created threads for debuggingCarsten Haitzler (Rasterman)
2015-09-09evas: fix memory leak in evas_object_image_render_pre.Nak-Gyeong Kim
Summary: Eina_Rectangles are removed from pixel_updates list without eina_rectangle_free during render pre stage. @fix Test Plan: check memory leak. Reviewers: cedric, jypark Subscribers: jypark, cedric Differential Revision: Signed-off-by: Cedric BAIL <>
2015-09-09evas: CID 1323091perepelits.m
Summary: @fix CID 1323091 for Coverity Reviewers: cedric, Hermet, raster Subscribers: cedric, artem.popov Differential Revision: Signed-off-by: Cedric BAIL <>