Commit Graph

217 Commits

Author SHA1 Message Date
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
Gustavo Sverzut Barbieri df701d8ca2 some clang warning cleanups i forgot to commit
SVN revision: 83024
2013-01-21 00:22:35 +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 58291fb022 efl: let's use text_prop cache properly.
Now evas_object_textgrid_render account for 1% of the benchmark.


SVN revision: 82928
2013-01-17 10:28:18 +00:00
Cedric BAIL b395af5e7a efl: stupid micro optimization.
This single test accounted for 1% of my terminology benchmark.
I am considering moving evas_string_char_next_get and
eina_unicode_utf8_get_next to become inline as their function
entry/exit point account for 3% of the same benchmark.

The biggest win would be to get rid of the memcpy _termpty_text_copy
that account for 16%.

In the micro optimization part, we also still do to much malloc
in font_draw_prepare as we don't recycle the array there and account
for 3% of the benchmark in malloc/free there. In the same ballpark
_text_save_top account for 2% of the time in malloc/free.

In that same benchmark, evas_object_textgrid_render account for 5%
where 4% of its time is spend in evas_common_font_draw_prepare. At this
point I am not sure that rewriting textgrid is gona help us at all. We
will win almost as much by just inlining the get_next things in evas
and eina for a minute of development time.


SVN revision: 82927
2013-01-17 09:38:49 +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
Cedric BAIL 6e9c28c147 efl: this function are used in evas canvas object.
SVN revision: 82917
2013-01-17 04:06:22 +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
Ulisses Furquim 09f342fdeb evas/async_render: use image scalecache
SVN revision: 82890
2013-01-16 16:07:46 +00:00
Cedric BAIL 7e4e3fe5b8 efl: let's not do useless over allocation and memcpy.
SVN revision: 82872
2013-01-16 10:45:04 +00:00
Carsten Haitzler b86a5cd30f fix pixman wrappers where image size and alloc size differ.
SVN revision: 82856
2013-01-16 06:32:34 +00:00
Cedric BAIL ffafb3602e efl: let's do less memcpy.
SVN revision: 82855
2013-01-16 06:31:32 +00:00
Ulisses Furquim 028e7e9ed2 evas/async_events: missed counting fix in unblocking _process()
SVN revision: 82834
2013-01-15 18:00:15 +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
Tom Hacohen 4a0acab860 Evas box: fix warning with a cast.
Unfortunately, although the pre-cast code is correct, we need the cast
because of the way gcc handles the types (magic) when passing va_args on
64 bit. This doesn't change anything logically.

SVN revision: 82827
2013-01-15 17:15:10 +00:00
Tom Hacohen c8e1fe4c9f Evas font: Add missing header.
SVN revision: 82826
2013-01-15 17:15:06 +00:00
Tom Hacohen ac0ff4c997 Evas textblock: Added EAPI to the ifdefed debugging funcs.
SVN revision: 82815
2013-01-15 14:49:38 +00:00
Tom Hacohen c7dc78c98b Evas text props: Fixed bug with no-harfbuzz bidi.
SVN revision: 82814
2013-01-15 14:49:31 +00:00
Tom Hacohen c089f174ca Evas obj text: Fix an issue with horiz_advance_get func.
SVN revision: 82800
2013-01-15 11:50:22 +00:00
Tom Hacohen d925820fa9 Evas textblock: simplified and fixed bugs in _cursor_geometry_get
SVN revision: 82798
2013-01-15 10:57:34 +00:00
ChunEon Park e078614a33 evas/map - avoid zero divide.
SVN revision: 82792
2013-01-15 05:11: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 90bba3a87e evas/async_events: fix async events counting
Before we returned the number of async events handled.
Even if nobody uses that let's fix it.



SVN revision: 82775
2013-01-14 20:02:31 +00:00
Stefan Schmidt b4b7c9239d Evas textblock: Fixed issue with line height when breakingon format.
All kudos to Tom for this one.

SVN revision: 82763
2013-01-14 14:18:10 +00:00
Carsten Haitzler b2034671b7 as pointed out by avind - missing bidi dir changes.
SVN revision: 82710
2013-01-13 02:58:00 +00:00
Carsten Haitzler 440bb7c23c cut down textprop size a bit... 72 -> 64bytes. if we can wrap
tp->start/len/text_offset/text_len read/wrtie in access funcs. so we
can special case where:

1. start == text_offset == 0 && len == text_len == 1
2. start == text_offset == 0 && len == text_len < 65536
3. start == text_offset == 0 && len == text_len < 256
 


SVN revision: 82692
2013-01-12 08:40:46 +00:00
Ulisses Furquim 48c15aaa74 evas/async_render: only get a ref if a thread cmd was issued
This patch should make us get a reference on images, maps and glyphs
which are sent in a command to the render thread. Before we were doing
some useless ref and unref operations.



SVN revision: 82666
2013-01-11 19:57:09 +00:00
Ulisses Furquim f0f9f7b7a6 evas/text: remove misleading comments on glyphs array refs
SVN revision: 82665
2013-01-11 19:56:49 +00:00
Ulisses Furquim b9f05341c3 evas/async_render: skip early if text_props with no glyphs
This is intended to preserve old behavior now that we have
evas_common_font_draw_cb() to handle both sync and async callbacks.
However, we need to check where why we end up with no glyphs in a
text_props even after calling evas_common_font_draw_prepare().



SVN revision: 82664
2013-01-11 19:56:32 +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
Leandro Pereira a868276f11 evas: Try to reuse glyph array if possible
This sould bring back a little bit of text rendering performance, while at
the same time decreasing memory usage and fragmentation.

Patch by: Leandro Pereira <leandro@profusion.mobi>



SVN revision: 82660
2013-01-11 19:49:15 +00:00
Leandro Pereira 468b44c444 evas: Do not use an Eina_Lock for glyph array
Patch by: Leandro Pereira <leandro@profusion.mobi>



SVN revision: 82659
2013-01-11 19:48:28 +00:00
Paulo Alcantara 5eaba08284 efl/font: Avoid passing NULL glyphs arrays on unref
evas_common_font_glyphs_unref() *should* be called with valid glyphs
arrays.

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



SVN revision: 82658
2013-01-11 19:48:00 +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
Tom Hacohen e84686d76d Evas: Fixed a bug with breaking after format items.
SVN revision: 82653
2013-01-11 18:16:24 +00:00
Henrique Dante de Almeida 9c12a58536 efl: Fix object size constraints calculation in stack layout
Patch by: Henrique Dante de Almeida <hdante@profusion.mobi>



SVN revision: 82647
2013-01-11 16:54:48 +00:00
Cedric BAIL fee7977839 efl: let's preperly clean pointer when we delete stuff.
SVN revision: 82621
2013-01-11 08:31:09 +00:00
Cedric BAIL 4395e416f1 efl: force update of Evas_Object_Text clip cache when geometry change.
SVN revision: 82612
2013-01-11 05:27:17 +00:00
Cedric BAIL 451abe47f5 efl: only compute font clip when relevant.
SVN revision: 82611
2013-01-11 05:21:54 +00:00
Cedric BAIL 4c64334b9d evas: remove duplicated piece of code.
SVN revision: 82601
2013-01-11 01:52:46 +00:00
Gustavo Sverzut Barbieri f6c10c4cf1 efl/evas: improve docs linking
SVN revision: 82493
2013-01-09 23:17:21 +00:00
Paulo Alcantara d7ae50462c efl/cserve2: Increase refcount of scaled image entries properly
Patch by: Paulo Alcantara <pcacjr@profusion.mobi>


SVN revision: 82484
2013-01-09 21:40:25 +00:00
Paulo Alcantara cf46337e17 efl/font: Dispatch font load request once sent to server
Patch by: Paulo Alcantara <pcacjr@profusion.mobi>


SVN revision: 82482
2013-01-09 21:37:34 +00:00
Paulo Alcantara c6f907a9f4 efl/cache: Set loaded flag properly with loaded pixels
Patch by: Paulo Alcantara <pcacjr@profusion.mobi>


SVN revision: 82481
2013-01-09 21:36:03 +00:00
Ulisses Furquim 6e91caf73f evas/async_events: more clear code in _async_events_put()
SVN revision: 82457
2013-01-09 12:22:52 +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
Gustavo Sverzut Barbieri 3c7fddb78d efl/evas: silent warning.
count is type 'int', but used as unsigned it (always > 0), however gcc
can't understand that and is complaining that 'check' could be used
without being initialized... which is false. Make the test != 0 to
silent gcc and make code as correct as before.




SVN revision: 82369
2013-01-07 22:46:01 +00:00
Christopher Michael bdfe30ea8d Fix typo in evas_map_free doxy.
NB: Can someone please backport this ??

Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 82335
2013-01-07 09:56:01 +00:00
Ulisses Furquim d53f43abaf evas/common/thread_render: fix queue cache handling
Fixed queue cache handling to let enqueue and process happen at the same
time, even though this is not our use case yet. This also solves a race
with the assignment of cache variables outside the queue lock and
remembers to free the cache when shutting down.



SVN revision: 82296
2013-01-06 02:01:53 +00:00
Ulisses Furquim 7904f59248 evas/async_events: fix leak of events array and simplify code
Fixed leak of 'memory' array (now async_events_cache) and simplified code of
evas_async_events_put().



SVN revision: 82295
2013-01-06 01:58:50 +00:00
Gustavo Sverzut Barbieri de7dc1c2cc efl/evas: proper glShaderSource() definition as glext.h
it is "const char * const *", not "const char **", and it was triggering a warning in our code.

it's just constness and will not trigger an error in our user's code, just an warning that he should fix.



SVN revision: 82278
2013-01-05 15:55:58 +00:00
Tom Hacohen af94656955 Evas smart clipped: Potentially fix memory leak as reported by raster.
Not really properly tested, sorry for that.

SVN revision: 82271
2013-01-05 12:14:41 +00:00
Carsten Haitzler 7f1fb9b10d thanks joel.
SVN revision: 82254
2013-01-05 02:20:13 +00:00
Carsten Haitzler 61995f2cf2 BIG COMMENT!!!!
SVN revision: 82248
2013-01-05 01:38:45 +00:00
Mike McCormack 8d1683367f efl: Remove unused variables
Signed-off-by: Mike McCormack <mikem@atratus.org>

SVN revision: 82246
2013-01-05 00:06:28 +00:00
Gustavo Sverzut Barbieri 733425c62c efl: make libraries aware of EFL_RUN_IN_TREE.
this variable tells that the build is being done in tree and we should
not look at install locations.



SVN revision: 82217
2013-01-04 17:19:43 +00:00
Leandro Dorileo e2ce20e9a4 evas: add event source evas object
This patch introduces fields to event Evas_Event_Mouse_* structures
to hold the event source evas object in case of evas source events
propagation.


SVN revision: 82138
2013-01-04 01:55:07 +00:00
Gustavo Sverzut Barbieri 0a2d116119 efl: eina_alloca.h to simplify alloca() usage.
having to replicate 18 lines per file just to access alloca() is
insane. Let's do that in Eina.h and avoid that crap :-/



SVN revision: 82082
2013-01-03 15:10:34 +00:00
Daniel Juyung Seo 8c67bafaf2 evas Evas.h: Fixed a typo.
SVN revision: 82069
2013-01-03 12:22:49 +00:00
ChunEon Park 5cf84bb84a evas - use Eina_Bool
SVN revision: 82035
2013-01-03 05:38:03 +00:00
ChunEon Park bb39010a0a evas - removed unnecessary lines.
in the render main function, it will always reset changed field whenever it calls the post function.



SVN revision: 81974
2013-01-02 11:56:20 +00:00
Carsten Haitzler 5c8c36507e let's use ()'s more and... lets be consistent about the ellipsis
end/start nodes in text so we dont get bitching about removing an item
not in the list (because it isnt?)



SVN revision: 81946
2013-01-01 08:22:46 +00:00
Cedric BAIL e985899c9c efl: and fix a potential memory leak.
SVN revision: 81922
2012-12-31 01:59:00 +00:00
Cedric BAIL db2a8c62f4 efl: fix issue when text didn't get properly replaced.
Thanks to hannes.janetzek@gmail.com !


SVN revision: 81921
2012-12-31 01:49:36 +00:00
Cedric BAIL 209347f148 efl: rename eina_inarray_add to eina_inarray_grow.
SVN revision: 81918
2012-12-31 01:27:58 +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
Gustavo Sverzut Barbieri 2608f68571 efl/docs: clean-up and make it more uniform.
now unified docs are bit more uniform in their start pages, overall
improved but much to do :-(



SVN revision: 81851
2012-12-28 23:26:05 +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
ChunEon Park 4079b164b7 evas/image - return as possible as soon.
SVN revision: 81794
2012-12-28 11:41:29 +00:00
Cedric BAIL f9ebc7bdcd evas: simplify logic for ellipsis.
SVN revision: 81773
2012-12-28 00:58:10 +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
Carsten Haitzler ff3a370b9b font draw - dont alloc font props for 32 chrs.. if we are only ever
going to have less than 32.. eg textgrid. 1 per prop.



SVN revision: 81654
2012-12-23 11:02:50 +00:00
Paulo Alcantara 0809c7de3f efl/cserve2: Fix ref/unef of image entries for threads
Signed-off-by: Paulo Alcantara <pcacjr@profusion.mobi>


SVN revision: 81584
2012-12-21 21:13:06 +00:00
Paulo Alcantara fb97c82882 efl/cserve2: Fix some bugs regarding fonts
Signed-off-by: Paulo Alcantara <pcacjr@profusion.mobi>


SVN revision: 81582
2012-12-21 21:11:23 +00:00
Leandro Pereira 6516727164 evas/canvas: Make sure rendering finishes before image_data_set() and image_native_set()
SVN revision: 81563
2012-12-21 17:30:44 +00:00
Tomas Cech cafaecfce1 efl: Fix typo in evas_object_textblock
Patch by: Tomas Cech <tcech@suse.cz>

SVN revision: 81559
2012-12-21 15:56:26 +00:00
Jonas M. Gastal 55845c5a3e efl: Adding much improved textblock style documentation.
SVN revision: 81485
2012-12-20 20:42:45 +00:00
Gustavo Sverzut Barbieri 3f5fa6170c efl/evas_object_image_is_inside: fixed implementation.
This function was basically never working correctly. Everything was
fixed by simulating the evas_object_image_render() workflow, but
instead of actually draw we just check the pixel transparency.

Bugs fixed:

 * fails when image is scaled up (could segv) or down (incorrect values);
 * fails when image is moved to negative x,y;
 * fails when border was being used.

Now everything is fixed and seems to work properly, except I'm not
handling the map and get_pixels() cases, these are marked with ERR()
so we can fix them if someone needs.




SVN revision: 81410
2012-12-19 22:41:12 +00:00
Gustavo Sverzut Barbieri 7c19e1b34d efl/evas_cache: copied images should be considered loaded.
Whenever we copy an image, making it write-able
(evas_object_image_data_get(o, 1)) or just start painting a pristine
buffer (evas_object_image_size_set(o, w, h)), we must mark the image
as loaded to avoid trying to load it (and failing, marking the whole
thing as EVAS_LOAD_ERROR_GENERIC).



SVN revision: 81409
2012-12-19 22:36:13 +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
Carsten Haitzler 9e5266109d fix 24bpp rendering problem and pixel fetch problem found in qemu/kvm.
SVN revision: 81378
2012-12-19 15:40:52 +00:00
Stefan Schmidt 8d956c8e99 efl/evas_bidi: Fix memleak.
Make sure we also free udelmin when we retrun from from the for loop early.

SVN revision: 81334
2012-12-19 09:28:02 +00:00
Carsten Haitzler 076204d166 oops-- -> call c func not mmx funf .. in the c only render path!
SVN revision: 81315
2012-12-19 00:55:32 +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
Jonas M. Gastal b23fb8a16b efl: Created Evas group and added all existing evas groups to it.
SVN revision: 81288
2012-12-18 18:25:12 +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
Leandro Pereira 645dcff9d2 evas: Add function to ref an Image_Entry
SVN revision: 81281
2012-12-18 16:22:47 +00:00
Leandro Pereira 9b2b121e6f evas: Add thread threaded render queue
SVN revision: 81280
2012-12-18 16:21:03 +00:00
Jonas M. Gastal d41d76ca38 efl: Modified section names as doxygen reuses titles for same named sections in different pages.
SVN revision: 81279
2012-12-18 16:18:28 +00:00
Jonas M. Gastal 65a7188905 efl: Unifying authors page.
SVN revision: 81277
2012-12-18 16:18:19 +00:00
Jonas M. Gastal 6ecaa33f22 efl: Adding a unified main page that links to the "mainpage" of libs.
SVN revision: 81273
2012-12-18 16:12:56 +00:00
Cedric BAIL 9cbe37a36a efl: another leak-- in Evas_Object_Text.
SVN revision: 81198
2012-12-18 01:31:52 +00:00