Commit Graph

1297 Commits

Author SHA1 Message Date
Gustavo Sverzut Barbieri a7a2419ac3 add missing EAPI to now external visible methods.
SVN revision: 41058
2009-06-16 15:01:26 +00:00
Cedric BAIL 575b0579cd * evas: Move to Eina module and make it possible to build a libevas with
everything in it.

	Note: This patch break the module API, so make sure you recompile and install
	every thing.


SVN revision: 41055
2009-06-16 13:01:36 +00:00
Cedric BAIL 0839ec65ea * Evas: Improve RGBA_Font_* cache using hash and stringshare correctly.
Note: This should not impact font rendering, but if you notice anything
	wrong, please don't hesitate to report this to me.


SVN revision: 41050
2009-06-15 15:07:13 +00:00
Cedric BAIL fdca8644a2 * Evas: Add another delay before reducing number of unused font in the
cache.

	Note: This is usefull when you are scaling up and down a font during an
	animation.


SVN revision: 41049
2009-06-15 14:37:14 +00:00
Cedric BAIL f63beb3edf * Evas: Remove allocation/free from the critical path.
SVN revision: 41048
2009-06-15 14:34:33 +00:00
Cedric BAIL 8cfa89c10f * Evas: Increase number of Evas_Rectangle in the pool as we use them a lot.
SVN revision: 41047
2009-06-15 14:33:48 +00:00
Cedric BAIL 14693fd070 * evas: Fix SEGV when smart object's child come from another layer than
the parent.

	When we insert object inside a smart object, they could be attached to
	another layer. As long as ref counting work, nothing wrong will happen.
	But during destruction of an Evas, we were just looping over all layers,
	destroying each of them, without checking for refcounting. This could
	cause SEGV.
	      This patch introduce a third loop for wiping out all layers after
	destroying all Evas_Object. So no more SEGV, and no performance
	regression.

	Note: Do not rely on evas_object_layer_get on smart object's child, it
	could give you the wrong answer.


SVN revision: 41046
2009-06-15 14:25:21 +00:00
Gustavo Sverzut Barbieri 600d560fc6 Cleanup llvm warnings.
By: michael bouchaud.


SVN revision: 41033
2009-06-14 20:48:37 +00:00
Gustavo Sverzut Barbieri 3e04e9ec3f cleanup llvm warnings by michael bouchaud.
By: michael bouchaud.


SVN revision: 41024
2009-06-13 00:04:25 +00:00
Andreas Volz e2b32f8ad8 after discussion on IRC (#edevelop) with k-s and raster I removed the deprecated tag
SVN revision: 40886
2009-06-03 21:41:00 +00:00
Carsten Haitzler f1ec8f8b3e fix precise-in
SVN revision: 40878
2009-06-03 14:16:55 +00:00
Carsten Haitzler 3528238bbe add request # tracking. this should detect badness - like forking and using
the connection from the fork (the cserve connection). it won't catch
threads... most of the time, but i need something else for that i think.



SVN revision: 40869
2009-05-31 22:03:24 +00:00
Carsten Haitzler 7c66538545 fix corer case with utf8
SVN revision: 40867
2009-05-31 21:26:36 +00:00
Vincent Torri 6842103267 revert the patch for RTL text rendering in software_16 engine
SVN revision: 40789
2009-05-23 09:23:01 +00:00
Carsten Haitzler 974bbfd19f header miss!
SVN revision: 40784
2009-05-22 23:10:01 +00:00
Carsten Haitzler c3b8b4ee14 revertg big R to L patches because they break cursors and selection.... BACK
boy BACK!



SVN revision: 40783
2009-05-22 21:12:32 +00:00
Andreas Volz 040492e46a some docs
SVN revision: 40779
2009-05-22 20:21:56 +00:00
Iván Briano 5888d62400 Make fribidi truly optional
SVN revision: 40755
2009-05-20 03:14:29 +00:00
Vincent Torri 0c233cfcf3 missing declaration of evas_common_font_query_last_up_to_pos()
patch by Lars Munch (previous one too)


SVN revision: 40729
2009-05-18 17:33:54 +00:00
Carsten Haitzler e999c88e80 tasn's rtl pathes and improvements... continued!
SVN revision: 40715
2009-05-18 06:08:15 +00:00
Carsten Haitzler 1d75ac114a make reload work properly...
SVN revision: 40670
2009-05-15 11:48:20 +00:00
Carsten Haitzler f5c88e9d53 fix a corner-case textblock issue with end of line char pos
SVN revision: 40640
2009-05-14 12:52:44 +00:00
Carsten Haitzler c830f68a06 1. fix scalecache to actually respect env vars set!
2. fix textblock cursor stuff in corner case.



SVN revision: 40617
2009-05-13 12:20:14 +00:00
Vincent Torri 84afbb853e fix EAPI value on Windows
SVN revision: 40597
2009-05-11 18:16:34 +00:00
Carsten Haitzler 5b7c1be3eb fix a strange issue with re-connect after explicit disconnect to cserve
SVN revision: 40587
2009-05-11 13:09:43 +00:00
Carsten Haitzler 26dea1fee7 dont dirty on loadopt change - cache handles that
SVN revision: 40583
2009-05-10 22:42:09 +00:00
Carsten Haitzler 47f6f036c1 fix load opts to only unload/reload if opts changed for cserve
SVN revision: 40573
2009-05-10 03:06:49 +00:00
Vincent Torri 22969c71ef allow compilation on OS where the cache server can't be built (like Windows...)
SVN revision: 40570
2009-05-09 16:18:31 +00:00
Vincent Torri fb5e325078 remove EINA_WARN_UNUSED_RESULT on functions that return nothing
SVN revision: 40565
2009-05-09 06:59:00 +00:00
Vincent Torri 7ac68a4283 include time.h header files because time_t is used in Evas.h
SVN revision: 40558
2009-05-08 21:46:01 +00:00
Carsten Haitzler f79b4a4a2f 1. scalecache config env vars an use them
2. more api's related to cserve



SVN revision: 40548
2009-05-08 11:26:25 +00:00
Carsten Haitzler 85bff718d6 1. scale cache now allows you to hint at the object if its dynamic, static or
none (ie default) and the engines actually understand it and use it.
2. fixes to scalecache and cserver too. more toto's done and its now been
stress tested by me - and i think cserve is ready to go gold. just enable it
with export EVAS_CSERVE=1 in your env for any eflapps - and run evas_cserve
(cmd-line options avalable plus cmd-line tol to query settings change on the
fly and query statsitics and state)



SVN revision: 40536
2009-05-07 13:29:56 +00:00
Vincent Torri 63f52c10c8 config.h is automatically added as a dependency by automake
SVN revision: 40531
2009-05-07 07:33:30 +00:00
Carsten Haitzler d92a6d99a7 more cserver work for sharede cache- improvements
SVN revision: 40524
2009-05-06 12:36:06 +00:00
Carsten Haitzler b37f6643cf fix char-wrap min size calc!
SVN revision: 40522
2009-05-06 12:34:54 +00:00
Gustavo Sverzut Barbieri 880ecd5726 fix minor build problems.
SVN revision: 40517
2009-05-06 06:39:59 +00:00
Carsten Haitzler 892c085276 more todo items knocked off for cserve
SVN revision: 40509
2009-05-05 14:37:18 +00:00
Carsten Haitzler bd6d938956 todo items for cserve for evas done - well some of them. more to come.
SVN revision: 40495
2009-05-03 07:37:31 +00:00
Gustavo Sverzut Barbieri 8ef8b1e15a fix build of cserve with -fvisibility=hidden.
SVN revision: 40486
2009-05-02 15:53:48 +00:00
Carsten Haitzler 46e8aa1b0d shared cache server++
is it ok?

1. it can be --disabled in evas's configure, but i think it works WITHOUT
disabling it (runtime) as it falls back to the old way of loading
2. it may cause build problems on some platforms - without it being enabled
we won't find out, so enable.
3. it needs enabling runtime to make use of it so it should be safe for now
until you enable it.

what is it?

it is a SHARED cache server - that means images loaded are loaded BY the
cache server (not by the actual process using evas). images are shared via
shared memory segments (shm_open + mmap). this means only 1 copy is in all
ram at any time - no matter how many processes need it , and its only loaded
once. also if another app has already loaded the same data - and its in the
cache or active hash, then another process needing the same stuff will avoid
the loads as it will just get instant replies from the cache of "image already
there". as it runs in its own process it can also time-out images from the
cache too.

right now you enable it by doing 2 things

1. run evas_cserve (it has cmd-line options to configure cache etc.
2. export EVAS_CSERVE=1 (im the environment of apps that should use the cache
server).

it works (for me) without crashes or problems. except for the following:

1. preloading doesnt work so its disabled if cserve is enabled. thisis
because the load threads interfere withthe unix comms socket causing
problems. this need to really change and have the cserve know about/do
preload and let the select() on the evas async events fd listen for the
unsolicited reply "load done". but it's not broken - simple preloads are
syncronous and forced if cserve is enabled (at build time).
2. if cserve is killed/crashes every app using it will have a bad day. baaad
day. so dont do it. also cserve may be vulnerable to apps crashing on it - it
may also exit with sigpipe. this needs fixing.
3. if the apps load using relative paths - this will break as it doesnt
account for the CWD of the client currently. will be fixed.
4. no way to change cache config runtime (yet)
5. no way to get internal cache state (yet).
6. if cache server exist - it wont clean up the shmem file nodes in /dev/shm
- it will clean on restart (remove the old junk). this needs fixing.

if you fine other issues - let me know.

things for the future:

1. now its a separate server.. the server could do async http etc. loads too
2. as a server it could monitor history of usage of files and images and
auto-pre-load files it knows historically are loaded then whose data is 
immediately accessed.
3. the same infra could be used to share font loads (freetype and/or 
fontconfig data).
4. ultimately being able to share rendered font glyphs will help a lot too.
5. it could, on its own, monitor "free memory" and when free memory runs
load, reduce cache size dynamically. (improving low memory situations).
6. it should get a gui to query cache state/contents and display visually.
this would be awesome to have a list of thumbnails that show whats in the
cache, how many referencesa they have, last active timestamps etc.

blah blah.

please let me know if the build is broken asap though as i will vanish
offline for a bit in about 24hrs...



SVN revision: 40478
2009-05-01 07:11:07 +00:00
Mike Frysinger 0041222bb0 pull in evas_common.h for evas_string_char_len_get() decl
SVN revision: 40428
2009-04-28 05:06:48 +00:00
Gustavo Sverzut Barbieri f783e3900d add missing "changed" flags.
SVN revision: 40409
2009-04-27 02:41:27 +00:00
Iván Briano 554dccdb0b some formatting
SVN revision: 40343
2009-04-24 04:35:52 +00:00
Iván Briano 6c7831c3ab Build against newer Fribidi
SVN revision: 40341
2009-04-24 00:21:26 +00:00
Vincent Torri 7f98415206 add GDI engine.
todo: fullscreen and shape support


SVN revision: 40310
2009-04-23 03:20:51 +00:00
Carsten Haitzler 99ccf484f8 snapworth quality - distchecked. sonames bumped. rev's bumped. tarballs
uploaded.



SVN revision: 40284
2009-04-22 14:07:05 +00:00
Carsten Haitzler 5399d14e78 limit init and fini to.. once!
SVN revision: 40261
2009-04-21 06:26:52 +00:00
Vincent Torri cc2916b58f add evas_intl_utils.h to extra dist (fix make distcheck)
reported by Albin Tonnerre


SVN revision: 40243
2009-04-19 22:06:59 +00:00
Carsten Haitzler 38811d99c5 cleanup on shutdown better
SVN revision: 40242
2009-04-19 20:40:41 +00:00
Carsten Haitzler ce5a59b7e5 lutin... release soname patch. verbose svn soname used right now
SVN revision: 40131
2009-04-17 10:01:45 +00:00
Vincent Torri 1893ae93be fix compilation with c++ compilers (needed for Windows too)
patch by Lars Munch


SVN revision: 40103
2009-04-16 10:41:27 +00:00
Iván Briano 994190d144 Don't leak, and be consistent with return values.
SVN revision: 40101
2009-04-16 04:52:33 +00:00
Carsten Haitzler 06e06c4e34 space--
SVN revision: 40087
2009-04-15 14:42:21 +00:00
Carsten Haitzler 215ee3b77b and save makefile.am
SVN revision: 40085
2009-04-15 13:56:42 +00:00
Cedric BAIL 10a15524cc * evas: Finally remove as much free/malloc from the render path. Will need certainly
need some tunning on the number of Evas_Rectangle allocated in advance.


SVN revision: 40084
2009-04-15 13:40:37 +00:00
Carsten Haitzler ce6094df3f move fribidi link to main lib
SVN revision: 40082
2009-04-15 12:01:05 +00:00
Gustavo Sverzut Barbieri 1a395af37d cedric I hate you :-)
remove last code using non-eina_mempool rectangles and abort() that
was triggering on clicks on titlebar.

Thanks to antognolli for reporting.



SVN revision: 40074
2009-04-15 03:14:41 +00:00
Gustavo Sverzut Barbieri 7468b45fbc export useful function.
SVN revision: 40065
2009-04-14 23:51:43 +00:00
Cedric BAIL 55e281b4ff * evas: Now all Evas_Rectangle are part of a pool. Next step would be to
remove free at the end of evas_object_render_pre_effect_updates and only
	do it on idle.


SVN revision: 40040
2009-04-14 12:15:07 +00:00
Cedric BAIL fa4c0f3ea3 * evas: Another attempt to fix clip cache. Now invalid clip cache every time
we change cur.geometry in the code (did a grep to locate this). I hope I did
	spot all users, as I didn't see bug in exec_buf, efm and in window title, I
	am confident enought to break svn again.

	* WARNING * This change can cause visual bug. Please report.



SVN revision: 40039
2009-04-14 10:47:15 +00:00
Cedric BAIL 0a662abf81 * evas: Oops, forgotten patch freeing without mempool.
SVN revision: 40038
2009-04-14 09:48:31 +00:00
Cedric BAIL d40e3ac01a * evas: Add a mempool. More speedup to come, depend on timing with "break" freeze.
SVN revision: 40037
2009-04-14 09:27:27 +00:00
Carsten Haitzler 2f0458439a and actually enable th RTL code!
SVN revision: 39981
2009-04-11 13:11:10 +00:00
Carsten Haitzler e279ba4bbe more files!
SVN revision: 39974
2009-04-11 08:11:47 +00:00
Carsten Haitzler 02f87aeaf5 and add files!
SVN revision: 39973
2009-04-11 08:06:50 +00:00
Carsten Haitzler c89a71c6c2 TAsn: patch from tasn. use libfribid for Right-to-left text.
this (apparently) makes right-to-left work for display. that means:

hebrew
yiddish
arabic
persian
...

i don't read (or write ... or speak) an of these...

so.. i'll leave it up to others to find bugs/problems and send patches.
thanks a huge amount to TAsn for the patch!



SVN revision: 39972
2009-04-11 07:51:20 +00:00
Carsten Haitzler de96594bde revert - spotted clip bug in titlebar in e17.
SVN revision: 39966
2009-04-11 07:10:26 +00:00
Cedric BAIL d3a9b8307f * evas: This patch reintroduce the use of cache for clip. I don't know
why it was disable the first time, so it could lead to some graphic bug.
	Please report any strange behaviour.

	*WARNING* This could really introduce some visual bug.



SVN revision: 39940
2009-04-10 15:14:40 +00:00
Carsten Haitzler 481bde4366 raoul: patch to fix thml-escapes for textblock
SVN revision: 39914
2009-04-10 03:25:27 +00:00
Carsten Haitzler b0b043f443 scalecache tracks normal cache size etc. etc. etc.
SVN revision: 39907
2009-04-09 13:20:00 +00:00
Cedric BAIL df60ff6129 * evas: Make one more function inline.
SVN revision: 39894
2009-04-08 11:08:02 +00:00
Carsten Haitzler d5cfffc3c2 add - in theory rgb24+32 666 support (ezx).
SVN revision: 39836
2009-04-03 01:00:54 +00:00
Carsten Haitzler 9c4c129125 hmm some more generous params for sc.
SVN revision: 39808
2009-03-31 04:12:09 +00:00
Carsten Haitzler 44dc876479 remove accounting info not used atm.
SVN revision: 39766
2009-03-28 02:50:19 +00:00
Carsten Haitzler 9dbf47682d oops and fix the flags!
SVN revision: 39762
2009-03-27 14:11:27 +00:00
Carsten Haitzler 28034d840b cover not good speedup case.
SVN revision: 39760
2009-03-27 13:46:53 +00:00
Carsten Haitzler df68d791b5 enable cache again
SVN revision: 39745
2009-03-27 07:34:45 +00:00
Carsten Haitzler 5f0c7389a2 fix non-scalecache mode
SVN revision: 39744
2009-03-27 07:22:46 +00:00
Carsten Haitzler 66cc98b0f4 also be able to free orig data now (and reload)
SVN revision: 39743
2009-03-27 06:06:45 +00:00
Carsten Haitzler e0a8a97b6d now enough logic to know when to unload original... now just need to make
unloaidng possible without instant-reload.



SVN revision: 39742
2009-03-27 03:50:03 +00:00
Carsten Haitzler 1a224311d6 make pipe renderer separate to thread support - off by default.
SVN revision: 39740
2009-03-27 01:48:58 +00:00
Carsten Haitzler 3335fef2aa found it! i was building without threading for realistic testing. lock issue.
fixed.



SVN revision: 39739
2009-03-27 00:30:41 +00:00
Gustavo Sverzut Barbieri 02d715fa7c brokes e17, canola and most things?
dunno why, but at least it does for me and some users at #e/#edevelop,
e17 freezes at start, so does canola and other evas apps, maybe due
64-bits? No time to investigate right now (at a conference).



SVN revision: 39738
2009-03-26 21:48:24 +00:00
Carsten Haitzler 29216b4a78 for now... enable scalecache. i havent seen it crash e or expedite or
elementary nor leak... so .. let's see. not 100% done yet. but good.



SVN revision: 39724
2009-03-26 12:47:44 +00:00
Carsten Haitzler a3f68ea9d9 1. a bunch of neon asm infra and some asm, but only the neon that works is
enabled. the blending is not working/complete. the neon for fills and copies
isnt actually faster though currently :(
2. scalecache infra - disabled for now. working on it.



SVN revision: 39723
2009-03-26 07:14:08 +00:00
Vincent Torri b61328192f API break (well, kind of...)
* evas_engine_info_set() returns now an int, to inform if
   an error occured or not when setting the info of the engine.
 * in the Evas_Func structure, the setup() method returns an int
 * all the engines are updated

I'll fix ecore_evas and ewl later (the compilation is still fine).

Gustavo: should I add EINA_WARN_UNUSED_RESULT at the end of the
evas_engine_info_set() function ?



SVN revision: 39670
2009-03-24 09:05:32 +00:00
Carsten Haitzler 19802a5705 leak--!
SVN revision: 39645
2009-03-23 10:02:26 +00:00
Gustavo Sverzut Barbieri 5d557c78ff oops, fix wrong attributes.
SVN revision: 39637
2009-03-22 21:40:52 +00:00
Vincent Torri 3a774f6971 * Re-add EAPI. These macros must be defined specifically for each EFL
for Windows (XP and CE).
 * include Eina.h before EAPI so that this latter is defined correctly for Evas


SVN revision: 39599
2009-03-20 06:43:44 +00:00
Gustavo Sverzut Barbieri 8347690e99 evas now use eina attribute macros.
let's stop replicating these macros over and over again, also flag
evas functions with attributes to help with optimizations.

TODO:

 * move functions returning "int" as boolean to Eina_Bool

 * move api entry to EINA_SAFETY_*

 * document api



SVN revision: 39598
2009-03-20 01:03:15 +00:00
Gustavo Sverzut Barbieri 74ece51f0b warnings--
SVN revision: 39593
2009-03-19 19:29:05 +00:00
Cedric BAIL f6a3045ce3 * evas: Add forgottent file needed for make dist.
SVN revision: 39583
2009-03-19 16:21:09 +00:00
Gustavo Sverzut Barbieri 1213744f42 fix image_data_put on software 16 bits engine.
SVN revision: 39537
2009-03-17 20:57:02 +00:00
Cedric BAIL a01af7856b * evas_object_smart: Oops, the right test.
SVN revision: 39529
2009-03-17 17:56:06 +00:00
Cedric BAIL bdc54a6afd * evas_object_smart: Prevent adding a child from another Evas.
**** WARNING ****
	  E is bugged in some place, it does swallow object from another Evas in some place.
	With this patch, it will abort sooner. If you find situation where it abort, please
	report. This are nasty bug hidden in our code base. And yes, you will the white box
	of death, this is expected.



SVN revision: 39528
2009-03-17 17:45:37 +00:00
Sebastian Dransfeld 8d40d92f83 Check whether functions exist before executing them.
SVN revision: 39521
2009-03-17 13:39:23 +00:00
Carsten Haitzler 09176167bd more neon infra - just for "copies" right now. only 1 func filled in.
SVN revision: 39502
2009-03-16 10:50:37 +00:00
Carsten Haitzler eba0aaffd6 preliminary neon asm support. do NOT use!
SVN revision: 39474
2009-03-14 06:48:25 +00:00
Carsten Haitzler b4465ec30a use macros for lock/unlock in .c file
SVN revision: 39473
2009-03-14 05:08:08 +00:00
Carsten Haitzler 6bc4266805 patch from Tiago Falcão - unroll loops in evas a bit.
SVN revision: 39467
2009-03-13 15:18:39 +00:00