Commit Graph

120 Commits

Author SHA1 Message Date
Cedric BAIL 0c9aead634 Evas_Rectangle are gone. We now use Eina_Rectangle and memory pool is
shared accross the application.


SVN revision: 41170
2009-06-23 13:57:27 +00:00
Gustavo Sverzut Barbieri 1c0ca5dfbb fix memory leak introduced with recent layer destruction.
also rename evas_layer_free() to evas_layer_free_objects() as what it
do now, make _evas_layer_free() as static and use it both cases.



SVN revision: 41123
2009-06-20 07:17:40 +00:00
Cedric BAIL 6d0ee81526 * evas: Remove Evas_Bool.
SVN revision: 41067
2009-06-17 10:01:52 +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 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
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
Vincent Torri 7f98415206 add GDI engine.
todo: fullscreen and shape support


SVN revision: 40310
2009-04-23 03:20:51 +00:00
Carsten Haitzler 38811d99c5 cleanup on shutdown better
SVN revision: 40242
2009-04-19 20:40:41 +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
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
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
Carsten Haitzler 4b2fd7c5aa engine in list--
SVN revision: 38177
2008-12-17 08:24:09 +00:00
Cedric BAIL 2b278b9419 Remove use of evas_hash from evas and use directly eina.
SVN revision: 38066
2008-12-09 17:56:31 +00:00
Vincent Torri a659951ced * use the m4 macro EVAS_CHECK_ENGINE to check if an engine is available or not
* group the want_* variables related to engines and loaders at the beginning
   of configure.ac
 * use -no-undefined directly instead of a flag checked wrt the host
 * some clean up in Makefile.am files

Please report any problem


SVN revision: 37784
2008-11-24 06:18:31 +00:00
Davide Andreoli b1b189a0bb * remove \'too small\' groups (unify image and gradient groups)
* fix some modules name to be more consistent

SVN revision: 37382
2008-11-01 20:19:28 +00:00
Cedric BAIL cdf08d5696 Fix bug when shutting down all engine and still have some font in the cache.
Draw back: When we are destroying an Evas canvas, we loose all cached font
that are not used anymore.

A correct fix would be to link Fndat to the Evas that provide and use them.
And only delete them when no more Evas reference them.


SVN revision: 37353
2008-10-31 10:46:46 +00:00
Cedric BAIL 465b76a017 Remove Evas_List from Evas.
SVN revision: 36942
2008-10-21 16:31:05 +00:00
Cedric BAIL 68d377afe6 Rename EINA_INLIST_ITER_NEXT/EINA_INLIST_ITER_LAST to EINA_INLIST_FOREACH/
EINA_INLIST_REVERSE_FOREACH so it best match is behaviour. Asked by Gustavo.



SVN revision: 36928
2008-10-21 12:19:57 +00:00
Cedric BAIL c99824328f Move from Evas_Object_List to Eina_Inlist and completly remove Evas_Object_List.
SVN revision: 36750
2008-10-17 11:23:18 +00:00
Cedric BAIL e692738d22 Remove Evas_Array.
SVN revision: 36716
2008-10-16 12:27:07 +00:00
Cedric BAIL 1cec65e922 Switch evas internal use of evas_stringshare to eina_stringshare.
SVN revision: 36674
2008-10-15 14:38:34 +00:00
Cedric BAIL bd2c5d6648 Add image preloading support.
This should work without performance impact for all engine.


SVN revision: 36018
2008-09-16 14:52:57 +00:00
Gustavo Sverzut Barbieri 58a49c2f69 Add calculate callback to Evas_Smart_Class.
Some people is using it for some time now without problems, so I'm
adding it to SVN to get some broader use. Remember to recompile ALL
libraries that depend on Evas as it will change the
EVAS_SMART_CLASS_VERSION and old classes will fail to load.

This will also change Edje so it will postpone _edje_recalc() to
render time, calculate() callback, however some methods will force
early recalculation.



SVN revision: 35860
2008-09-07 01:25:49 +00:00
Cedric BAIL eaedf88d4d Fix osbcuring case with evas_render cache.
SVN revision: 34737
2008-06-04 16:42:39 +00:00
Cedric BAIL eaa23bebce Replace evas_list used by evas_render by a cache of evas_array.
README: This should not break any EFL applications, but please check and report any breakage to me.


SVN revision: 34677
2008-05-26 13:24:24 +00:00
doursse 208d20a30f * Add Windows CE engine (1st step)
The engine is not entirely working right now. Recent devices which
  supports the raw frame buffer should work though. But having it in
  cvs will help me as I'm coding it most of the time "blindly" (no
  device to test it)

 * minor formatting in the top evel Makefile.am too


SVN revision: 34354
2008-04-23 19:17:59 +00:00
Gustavo Sverzut Barbieri 5233796eb5 Add const to Evas api, still lacks objects.
SVN revision: 33711
2008-02-08 20:44:09 +00:00
doursse 2898660d8a 16 bits software directdraw engine. Mainly for win ce users, I guess
SVN revision: 32020
2007-10-08 19:08:42 +00:00
doursse 8474937ef3 Direct3D engine. I'm not an expert of that api, so there should room for lots of improvements
SVN revision: 31359
2007-08-17 09:16:26 +00:00
doursse 31c47b3461 Glew OpenGL engine added. Windows can have an opengl engine thgough the Glew library, now. See INSTALL note
SVN revision: 31180
2007-08-05 07:22:44 +00:00
Carsten Haitzler 6c167c3a6d cedric's sdl patch.
SVN revision: 30845
2007-07-16 07:25:35 +00:00
doursse 2bbb2619f9 add the DirectDraw engine. Evas is now available on Windows (tm)
SVN revision: 30089
2007-05-27 06:43:23 +00:00
Carsten Haitzler 002d09cc7d asparagus - pass distcheck.
SVN revision: 29865
2007-05-05 15:14:17 +00:00
Carsten Haitzler 5e691081ca extensive delete me handling for evas free's and list walks
SVN revision: 29776
2007-04-30 04:22:42 +00:00
Carsten Haitzler 16df9e0047 add in the work I did for a 16bit engine - for now, a dormant project until i
can be convinced it provides real and significant speedups that warrant the
significant effort.


SVN revision: 29770
2007-04-29 15:45:40 +00:00
Carsten Haitzler f80a02f999 a few things.
1. disable viewports other than 1:1 at 0,0
2. remove output space coorsds for pointer.
3. remove geom caching
4. make threaded pipelined engine a runtime detect if u have > 1 cpu.
5. pthread build default if u have pthread.h and sched.h


SVN revision: 27131
2006-11-16 03:20:24 +00:00
Carsten Haitzler 3115a52684 and i implemented module UNLOADING. given enough cycles of non-use of a
module and no references, it will get.... UNLOADED :)


SVN revision: 25954
2006-09-18 09:40:29 +00:00
doursse 1f3549a60b xrender xcb engine
SVN revision: 21172
2006-03-10 19:10:07 +00:00
Carsten Haitzler e8bf4cdcbb make hinting an engine api thnig - engine apis need to be mroe easily updated
SVN revision: 20850
2006-02-28 04:07:49 +00:00
sebastid 59f9caea69 Formatting.
SVN revision: 19790
2006-01-14 15:39:57 +00:00
Carsten Haitzler f435375b19 initial import fo loadable engine modules for evas - from jorge zappie :)
SVN revision: 19775
2006-01-14 12:13:38 +00:00
sebastid 3e41ec2fbd Remove EAPI warnings.
Remove duplicate defines.


SVN revision: 19579
2006-01-06 23:05:17 +00:00
Carsten Haitzler 1b272aec90 joses's gradient work - gradient look nice. one problem jose.. USE BRACKETS!
do NOT depend on order operation precedence. it broke scaling. laos other
completely bizarre mmx things were going wrong with mm7 ending up not 0 so
i've had to force it to be 0.


SVN revision: 18811
2005-12-03 09:27:53 +00:00
tsauerbeck 594ad62182 free image cache on shutdown
SVN revision: 18703
2005-11-29 11:46:20 +00:00
Carsten Haitzler d1861a8d4c add a call
SVN revision: 18336
2005-11-06 09:47:28 +00:00
Carsten Haitzler f4a8513aa4 an xrender engine. fully complete - but it doesnt support shaped window masks
and destination alpha like software_x11 does so its not a 100% dropin
replacement... yet


SVN revision: 17112
2005-10-02 15:15:44 +00:00
Carsten Haitzler 2a5e480ad1 tackpatch
SVN revision: 15429
2005-06-19 13:06:36 +00:00
sebastid 26cf0a9642 Fix deletion loop in evas_free()
SVN revision: 15428
2005-06-19 12:45:29 +00:00
sebastid 3f776d358a Cleanup some headers.
Remove duplicate typedefs and declerations.


SVN revision: 15407
2005-06-18 01:00:32 +00:00
Carsten Haitzler 46e02cf8bb whitespace
SVN revision: 14889
2005-05-22 02:49:50 +00:00
doursse 2b2a800ad6 xcb port
SVN revision: 13822
2005-03-20 23:44:22 +00:00
Carsten Haitzler 1131ec1e34 and here are the stubs of a cairo engine
SVN revision: 11248
2004-08-17 06:03:39 +00:00
ncn 5657ac4928 Some simplification and creation of some modules.
SVN revision: 11124
2004-08-01 02:20:40 +00:00
tsauerbeck 4be5caefbd consistent init/shutdown system
SVN revision: 10725
2004-07-07 19:24:49 +00:00
Carsten Haitzler b46f5ee456 lets limit the starting defaults
SVN revision: 10070
2004-05-05 11:00:19 +00:00
Carsten Haitzler b8d1a2a24a avoid type overflow...
SVN revision: 9949
2004-04-28 01:52:16 +00:00
zuluone c17ec61deb corrected the docs slightly - no code changed
SVN revision: 8993
2004-02-16 19:22:48 +00:00
Carsten Haitzler fbd57cda60 patchies in
SVN revision: 8793
2004-02-04 04:38:34 +00:00
Carsten Haitzler dca0de96c2 till's shutdown patch - this is good (tm). :)
SVN revision: 8371
2004-01-13 02:24:03 +00:00
Carsten Haitzler 1bf34243f6 move co-ordinates to be their own type. this is a good thing, because ti
allows me to be able to virtualize he canvas co-ordinate system. right now
it's doubles. i can now move to floats, int's etc. with a recompile (and well
recompile all depending apps too). it's still ACTUALLY doubles, just all
typedef'ed now. i've also changed booleans to actual boolean types (not an
int), all code will keep working - but i'd highly suggest moving your code to
use these types if interacting with evas.


SVN revision: 7644
2003-10-18 03:34:00 +00:00
Carsten Haitzler 84544019f0 oops. on evas_free nested smart objects might just not clean up right.. fix
SVN revision: 7263
2003-07-30 02:58:10 +00:00
Carsten Haitzler 42d8853235 oops leakage on ferring an evas! fix.
SVN revision: 7059
2003-06-22 02:33:25 +00:00
Carsten Haitzler bbfaab2ac1 memory buffer engine... not doing everything. api may change... working on it.
SVN revision: 6808
2003-04-02 04:28:27 +00:00
Carsten Haitzler fcc61494df fear the changes... api breakage... everyone.. errr... fix yer proggies! :)
SVN revision: 6618
2003-01-22 22:24:36 +00:00
Carsten Haitzler 7c80fa9a3e logic problem on evas_free(). shoudl be fixed now... :)
SVN revision: 6559
2003-01-10 05:38:47 +00:00
Carsten Haitzler 1be4553049 sellies no-more-segv's
SVN revision: 6462
2002-11-26 05:25:02 +00:00
Carsten Haitzler 56b5e15f26 code move
SVN revision: 6445
2002-11-08 08:02:15 +00:00