Commit Graph

332 Commits

Author SHA1 Message Date
Ulisses Furquim 0c83dd806a evas/render: sync all canvases in _render_dump() 2013-09-02 20:03:23 -03:00
Ulisses Furquim 063f076aed evas/async_render: remove block/unblock of render thread.
This reverts commit 42a46214c4.
2013-09-02 20:01:37 -03:00
Ulisses Furquim 31b1cc6e3e evas/render: introduce evas_render_sync().
evas_render_sync() will loop through all canvases and wait for their
rendering to finish. Since this function will execute from the main
thread that will sync all of them.
2013-09-02 19:41:32 -03:00
Carsten Haitzler 08e430b18a move render wait before the block to avoid deadlock. 2013-08-30 09:09:08 +09:00
Carsten Haitzler 42a46214c4 other async render issue - sync ALL rendering canvases, not just one 2013-08-29 21:18:04 +09:00
Carsten Haitzler 175335ae08 evas - restore ability for evas_render_dump() to dump out referenced data 2013-08-28 16:44:31 +09:00
Chris Michael eff087a4b3 Fix redraw rectangle when framespace changes to not be Outside viewport.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-23 08:39:03 +01:00
Chris Michael 865531a9e1 Fix compiler warning about missing braces.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-19 08:35:34 +01:00
Mike Blumenkrantz c31061b642 evas render debug now prints object names if they exist 2013-08-19 05:20:57 +01:00
ChunEon Park 75ccce5706 evas - removed redundant code.
This check is not necessary but causes incorrect clipping issues.

At this moment, if primitive objects (except image) is the source then that code may be helpful but it doesn't guarantee same behavior for all the primitive objects.

So, right now removed it.
2013-08-18 16:26:11 +09:00
Cedric Bail f302c0e0ac evas: fix build with debugging rendering trace. 2013-08-06 15:45:07 +09:00
ChunEon Park e2c395f049 evas/proxy - render the children of the proxy's source object when ther visibility is true.
This is not the perfect solution at this moment. This doesn't consider the cached clipper's visibility at all.
But at least this would be better than exist works. Should be improved.
2013-07-28 20:24:46 +09:00
Cedric Bail 48b40640b5 evas: no need to call eo_data_scope_get in many case after this change.
Reduce CPU usage by 5% in some case (especially when the CPU is not the
limiting factor like with the GL backend).
2013-07-09 09:48:09 +09:00
ChunEon Park 64f984bd1a evas/render - draw the map in case that the source clip is invalid. 2013-07-05 12:53:09 +09:00
ChunEon Park 307e2f823d evas/render - support proxy source clip for the mapped object. 2013-07-05 11:14:47 +09:00
ChunEon Park 04f87ab237 evas/render - refactoring. split off a bunch of internal logic to a seprate function. 2013-07-05 11:09:03 +09:00
ChunEon Park 5f4ae9abeb evas/render - refactoring about checking smart member changed.
move those code to the evas_object_smart.
2013-07-02 15:28:56 +09:00
ChunEon Park 44568ef01d efl/evas - removed duplicated lines and apply clipping only when clip values are available. 2013-06-25 21:56:28 +09:00
ChunEon Park ede5390258 efl/evas - +null check 2013-06-25 21:53:05 +09:00
Sebastian Dransfeld 336f6ec328 efl: formatting 2013-06-20 13:28:18 +02:00
Sebastian Dransfeld 51023d2d4f evas: Keep sane name for public header
Evas_Common.h should be used for the public header, and rather rename
evas_common.h internal header to another name.

Sa:
Evas_Common_Header.h -> Evas_Common.h
evas_common.h -> evas_common_private.h

Shouldn't have both Evas_Common.h and evas_common.h because of case
insensitive filesystems.
2013-06-20 12:53:29 +02:00
ChunEon Park 11b43dad4b evas - fixed source clip. If the source object is a evas primitive object, then proxy won't clipped by proxy clipper itself. 2013-05-31 20:29:18 +09:00
ChunEon Park fd7d1f9f98 evas/render - this is insane to me since nowhere it release the render_pre_done FALSE pairly.
This causes the textblock layouting problem.

It should be checked when does it really render_pre() called.

If someone knows the reason of this, please ping me.
2013-05-30 14:50:47 +09:00
Chris Michael 6cdbca59d4 Fix proxy object check to compare against proper object.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-05-09 08:06:05 +01:00
ChunEon Park b10be8fb4c evas/render - Fixed proxy clipping if the source object is clipped by output area.
Before this patch, the proxy will be clipped if the source is clipped by output area even if the soure_clip is disabled,

Additionally, src_clip/src_event/src_visible options must be supported in edje.
2013-05-08 01:16:49 +09:00
ChunEon Park 6a6f827e20 evas/render - there was a my fault. proxy clip should be a default. 2013-05-06 22:18:08 +09:00
ChunEon Park 49e88118d5 evas/render - and you don't need to check change for the map render if the change is already determined. 2013-05-06 11:03:11 +09:00
ChunEon Park 95b0f469b6 evas/render - clean code. 2013-05-06 00:56:10 +09:00
ChunEon Park 3ba5135135 evas - update map smart members when really it needs to render. 2013-05-06 00:48:56 +09:00
Carsten Haitzler c8def7a756 SCREW YOU GIT!... here is my fix for jack daniels leak! 2013-05-02 16:48:43 +09:00
Carsten Haitzler f8c9a8d167 revert the revert... damn you git!
Revert "Revert "Efl: replace eo_data_get for objects data referencing.""

This reverts commit b64a2994b3.
2013-05-02 16:47:16 +09:00
Carsten Haitzler b64a2994b3 Revert "Efl: replace eo_data_get for objects data referencing."
This reverts commit 654a3f5f94.
2013-05-02 14:17:19 +09:00
Daniel Zaoui 654a3f5f94 Efl: replace eo_data_get for objects data referencing. 2013-05-01 10:37:08 +03:00
ChunEon Park 29ef0f71ba evas - fix the wrong compare. thanks JackDanielZ for spotting it. 2013-04-30 19:51:24 +09:00
Rafael Antognolli 59c37d1c7b evas/framespace: Add support for framespace offset rendering translation.
Instead of moving the objects by adding the framespace offset to them,
use this offset when rendering them. This way there's no change in the
object's geometry/position, it works correctly with map, and will be
automatically updated in case that the framespace values change (for
instance if one sets a window to borderless).

There are 2 main places where changes were needed:
 - output redraws, when they come from an object being changed, must be
   add the framespace offset to their damaged area;
 - checks to see if the object is inside a given rendering area, must
   also add this offset, since the object is actually being rendered on
   a different position;
2013-04-29 11:29:43 -03:00
ChunEon Park 2e699fbab9 evas - and apply proxy_src_clip only when object and proxy is same in render_mapped 2013-04-29 21:05:33 +09:00
ChunEon Park 9fc2835cf4 evas - add evas_object_image_source_clip_set()/get() 2013-04-29 15:30:37 +09:00
ChunEon Park 911790b236 evas - fixed logic fault in proxy clipping. 2013-04-26 20:05:46 +09:00
ChunEon Park 188c345b27 evas - For compatibility, Make proxy's source clip to be optional. Im checking partal code for zmike. 2013-04-26 17:19:50 +09:00
ChunEon Park 39a864d2f7 evas - fix the proxy object to not be clipped by source clipper 2013-04-26 14:45:41 +09:00
Rafael Antognolli d05c58ff2c evas/wayland: Remove framespace clipper.
This clipper caused several bugs already, and there are some bugs still
not fixed. Let's remove it and try to fix any remaining with some other
kind of solution that does not depend on adding or clipping objects
during the evas render phase, which causes unexpected behavior.
2013-04-23 18:52:35 -03:00
Rafael Antognolli e937f1f5a3 evas/wayland: Unclip objects from the framespace after rendering.
These objects should be clipped only during rendering, since keeping
them clipped after that allows for unexpected behavior on the
application side. For instance, an application could check if objects
have clippers before doing something to them, assuming that some objects
should have no clipper, but under wayland, after the first render
iteration, there will be no objects without a clipper.

This commit fixes this behavior by unclipping objects that had no
clipper prior to the render iteration.

Additionally, it fixes a bug where a maximized/fullscreen window could
have not all of its content rendered immediately. This was occuring
because some objects could be clipped to the framespace clipper, but
considered invisible in the beginning of the render phase, where they
are evaluated. They were considered invisible because the framespace
clipper object was not resized at that phase yet, and thus these objects
were being clipped out from the viewport.
2013-04-18 16:38:16 -03:00
ChunEon Park 4163b2f509 Evas: If an object goes to be hidden without replacing the cur/prev state info, the object context can be corrupted at the next show time. Now it replaces the cur/prev in that rare case. 2013-04-16 03:05:16 +09:00
Cedric Bail 36c3cf0733 evas: don't call eo_data_get when it is really not necessary. 2013-04-11 18:07:09 +09:00
Cedric Bail 7739267d8b evas: bounding box is only relevant to smart object. 2013-04-07 15:11:56 +09:00
Cedric Bail f1dfbc4e0e evas: remove one useless pointer (-30KB). 2013-04-07 14:00:10 +09:00
Cedric BAIL f5b01e32ac evas: stop over redraw of Evas_Map content with Smart Object.
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-04-05 15:19:48 +09:00
Daniel Juyung Seo 8027d5f5d7 evas_render.c: added EINA_UNUSED for unused parameter. 2013-04-02 22:00:55 +09:00
Cedric BAIL ad861e9eab evas: call Eina_Cow garbage collector on surface dump. 2013-04-01 18:39:50 +09:00
ChunEon Park 7751a996c8 evas/render - better efficient check. 2013-03-28 10:34:26 +09:00
Cedric BAIL d583d08814 evas: no need for a callback per async call.
Let's not multiply our callback infrastructure without any serious need. We
already have to many of them.
2013-03-26 11:59:27 +09:00
Cedric BAIL d1112534a1 evas: optionally propagate update rectangle on RENDER_POST. 2013-03-22 15:30:34 +09:00
Cedric BAIL d79a2efa39 evas: use Eina_Cow a lot more and we are closer to the memory size of 1.7. 2013-03-13 14:35:25 +09:00
Raphael Kubo da Costa b236ac69bd evas: Rename evas_font_zero_presure()
There's an obvious typo in the function name, so appease my OCD and
rename it.

Patch by: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>



SVN revision: 83604
2013-02-04 15:33:38 +00:00
Cedric BAIL 3070dfac2d efl: move Evas_Object map data to there own Eina_Cow pointer.
NOTE: Overall speedup of 7%. No benchmark on memory consumption yet
as they are still running ask me directly to get the number later
today.


SVN revision: 83052
2013-01-22 03:56:00 +00:00
Cedric BAIL 3e7e37630f efl: group more map stuff in the same sub structure.
SVN revision: 83034
2013-01-21 09:36:19 +00:00
Cedric BAIL 380aea9e91 efl: cleanup Evas_Object_Protected_Data.
SVN revision: 83028
2013-01-21 03:51:58 +00:00
Cedric BAIL 5ae84c97ce efl: use new eina_cow macro to clean stuff a little.
SVN revision: 83026
2013-01-21 03:12:39 +00:00
Ulisses Furquim 34cc6a1b15 evas/async_render: fix refcount handling of scaled image entries
SVN revision: 82961
2013-01-17 22:14:05 +00:00
Leandro Pereira f52f44e7a2 evas_render: Measure time spent while rendering in sync and async modes
SVN revision: 82936
2013-01-17 14:31:34 +00:00
Carsten Haitzler 56a9ccefb5 a few spots missed for sync with async thread.
SVN revision: 82932
2013-01-17 11:10:27 +00:00
Cedric BAIL 4c828392da efl: roll in first use of Eina_Cow for Evas_Object.proxy.
Expedite biggest test memory win 100KB, average 10KB.
No slow down in proxy test (+/-3%). Speed up in most other
case (average speed up is +5%), likely due to much more
cache hit.

Elementary test show a win between 100KB to 600KB depending
on the test you are considering.

Now, you can see how I intend to use Eina_Cow and the expected
win we can have from it. I don't intend to do more for the
rest of the week so you have time to comment.


SVN revision: 82924
2013-01-17 07:21:06 +00:00
Ulisses Furquim d8b2bce148 evas/async_render: fix scalecache integration
Note: scalecache is really crazy stuff, we should rewrite it or get rid of it.



SVN revision: 82912
2013-01-16 22:32:39 +00:00
Paulo Alcantara b557bd9e0d efl/engines: Introduce multi_font_draw() function
This new engine function will only be used in software generic for
now - since it's the only engine used with the async render.

This function has been introduced in order to avoid growing thread
command queue too much to draw a text_props at a time on render calls
from textgrid objects.

Patch by: Paulo Alcantara <pcacjr@profusion.mobi>



SVN revision: 82832
2013-01-15 17:35:11 +00:00
Ulisses Furquim 0f435b7eae evas/async_render: fixing mix of sync and async rendering
SVN revision: 82776
2013-01-14 20:02:43 +00:00
Ulisses Furquim d45a54a0aa evas/async_render: do not use async event to unref image maps
SVN revision: 82663
2013-01-11 19:56:17 +00:00
Leandro Pereira d5f91fd5c2 evas/async_render: do not use async event to unref glyphs
Patch by: Leandro Pereira <leandro@profusion.mobi>



SVN revision: 82662
2013-01-11 19:55:40 +00:00
Leandro Pereira ed79c2182e evas/async_render: do not use async event to unref images
Patch by: Leandro Pereira <leandro@profusion.mobi>



SVN revision: 82661
2013-01-11 19:54:12 +00:00
Gustavo Sverzut Barbieri 1e1751de47 evas: be loud if async render is mixed with sync.
SVN revision: 82655
2013-01-11 18:20:11 +00:00
Carsten Haitzler a8cc6e9e16 oosp - didnt meant o commit this... it was just the start of some test
code... not ready yet. just adds warnings and stuff.



SVN revision: 82381
2013-01-08 04:00:36 +00:00
Carsten Haitzler 478de3ec76 small change - not worth chglogging... make evas gl x11 header not
need xlib.h anymore... :)



SVN revision: 82378
2013-01-08 03:49:49 +00:00
Cedric BAIL f8ea554926 efl: limit regression with async rendering.
NOTE: There is still an issue with text rendering, that
is still 4 times slower and impact all text object (text,
textblock and textgrid).


SVN revision: 81912
2012-12-30 23:39:11 +00:00
Ulisses Furquim 5f493f2c38 evas/evas_render: use rendering flag only when async rendering
Also postpone marking the rendering flag until we know we will have
the draw thread do its work. This way we avoid waiting forever at
evas_render_rendering_wait() when the draw thread is also blocked.

Patch by: Ulisses Furquim <ulisses@profusion.mobi>



SVN revision: 81798
2012-12-28 13:00:37 +00:00
Mike McCormack 7b2b9da7cb efl: Remove unused label
Signed-off-by: Mike McCormack <mikem@atratus.org>

SVN revision: 81736
2012-12-27 08:58:40 +00:00
Paulo Alcantara 19a52f4efd efl/evas: Fix XCB/Xlib crash when closing applications
We need to wait draw threads finishing their stuff before freeing canvas.

Signed-off-by: Paulo Alcantara <pcacjr@profusion.mobi>


SVN revision: 81395
2012-12-19 18:03:38 +00:00
Paulo Alcantara 76932dcc9f evas/engines: Introduce render mode
The render mode should be useful for engines other than software one.

Signed-off-by: Paulo Alcantara <pcacjr@profusion.mobi>


SVN revision: 81384
2012-12-19 16:15:58 +00:00
Paulo Alcantara 6483c8d1e6 evas/render: Avoid race when sending render data and updates_cb
Signed-off-by: Paulo Alcantara <pcacjr@profusion.mobi>



SVN revision: 81303
2012-12-18 20:20:45 +00:00
Leandro Pereira cb10c7d019 evas: Modify software_generic and gl_x11 to with with threaded renderer
SVN revision: 81284
2012-12-18 16:28:55 +00:00
Leandro Pereira a7b4a3c12d evas: Async render
SVN revision: 81282
2012-12-18 16:26:44 +00:00
Gustavo Sverzut Barbieri a332d1c869 efl/evas: remove mask of non-rectangle objects.
it was broken and mostly disabled, so now we do remove it in the hope
who does that next time, does it properly.



SVN revision: 80252
2012-12-05 13:52:59 +00:00
ChunEon Park f90641200b evas - fix the memory leak - eina_rectangles allocated for clip_changes.
SVN revision: 79469
2012-11-20 11:52:16 +00:00
Vincent Torri c15e9c6575 merge: and now Evas
I've tested make -j 3 install and it works nicely

I've tested expedite with software and opengl xlib,
and it works. Not tested other engines, so please
report any problems (engines or other) on the ML.

TODO: examples and tests, I'll add them later

ISSUE: Eina_Unicode size check. It indirectly depends on
       eina_config.h, which is created at the end of the
       configure script. So its size is always 0. I don't
       know how that size is used, so I can't do a lot,
       for now.


SVN revision: 78895
2012-11-04 11:51:42 +00:00