Commit Graph

1629 Commits

Author SHA1 Message Date
Gustavo Sverzut Barbieri 23b98358b0 sorry, let's keep name coherent with others.
SVN revision: 38750
2009-01-23 22:23:03 +00:00
Gustavo Sverzut Barbieri d58031f5fc evas preload: do not lock mutex aready locked.
SVN revision: 38749
2009-01-23 22:21:04 +00:00
Gustavo Sverzut Barbieri 018af5b44c Fix image cache shutdown.
we should just remove entries pending preload from the cache being
shutdown, not all of them.

this is untested as it is hard to force this situation, but should be
more correct than the previous.



SVN revision: 38747
2009-01-23 21:08:35 +00:00
Gustavo Sverzut Barbieri 14a88b52d4 evas preload: keep the preload thread alive.
before, when no more images were to be preloaded asynchronously, the
thread exited, but were not collected. This leads to a huge leak if
the process is doing aggressive use of image preloading (ie: photo
wall).

collecting dead threads in a proper way (read: without race
conditions) is a bit harder than keeping just one thread alive,
forever. As we do that for evas_pipe (the renderer), let's do the same
with preload and save code.



SVN revision: 38746
2009-01-23 20:36:04 +00:00
Gustavo Sverzut Barbieri b814a5e2be buffer: reorder destroy-recreate sequence to avoid cache to be destroyed.
users of buffer engine (ie: e_thumb_main.c) were broken since when
they resize the canvas they would implicitly call engine->setup()
again, which would destroy output and create it again. However the
cache could be destroyed and images using it would be bogus.

This does not happen if the process have other cache users, but
e_thumb is just one canvas live at time.

By reordering, we have the cache reference to go to 2 and then back to
1, not destroying it.



SVN revision: 38739
2009-01-23 15:28:43 +00:00
Vincent Torri c141b1c636 __stdcall must also be used in the definition of the callbacks
SVN revision: 38705
2009-01-23 06:24:12 +00:00
Gustavo Sverzut Barbieri 763999fa8b Remove all images pending preload before cache shuts down.
SVN revision: 38703
2009-01-23 00:09:10 +00:00
Gustavo Sverzut Barbieri 83783665f5 Let's try to shutdown cache and fix delete problem.
SVN revision: 38702
2009-01-23 00:08:11 +00:00
Carsten Haitzler 185d9ae9b5 allow asm to turn off via env vars
SVN revision: 38693
2009-01-22 03:21:04 +00:00
Jorge Luis Zapata Muga f26e6dddc0 Missing #else for non win32
SVN revision: 38681
2009-01-21 09:46:02 +00:00
Vincent Torri fe52686976 Avoid the stack to be screwed up in the callbacks on Windows.
Fix the seg fault in the polygon test in expedite on Windows.


SVN revision: 38679
2009-01-21 07:44:20 +00:00
Cedric BAIL 5621e47f1c Correctly cancel each image object and not all at once.
SVN revision: 38658
2009-01-20 14:56:37 +00:00
Vincent Torri a1d61c71c2 add error message in the win ce gdi engine
SVN revision: 38646
2009-01-19 17:53:30 +00:00
Cedric BAIL 011bc06ecc * evas/src/lib/cache/evas_cache_image.c,
* evas/src/lib/include/evas_common.h: Now you should receive a async call for each image object that does async preload.


SVN revision: 38643
2009-01-19 14:06:09 +00:00
handyande 6c94ab45be Look for locks being available
SVN revision: 38571
2009-01-13 16:31:31 +00:00
Daniel Kolesa 6c874722ee Added support for "make doc" in evas and ecore.
Thanks to Lutin :)


SVN revision: 38545
2009-01-11 10:20:22 +00:00
Vincent Torri ed7157e3d5 fix mem leak in tiff loader
SVN revision: 38542
2009-01-10 22:44:04 +00:00
Vincent Torri a5695ae333 add windowed and fullscreen support to the gdi backend. Other backend are only fullscreen.
SVN revision: 38539
2009-01-10 17:33:19 +00:00
Iván Briano 8d7855081a Make evas_object_table_smart_set static.
Makes no sense to export it when table is not meant to be inheritable.



SVN revision: 38516
2009-01-09 13:31:51 +00:00
Carsten Haitzler 4959d816f6 fix formatting and use dither for adopting with format and add comments for
tmpo buf fmt



SVN revision: 38459
2009-01-05 04:06:19 +00:00
Carsten Haitzler 9028efcbdc fix other #ifdefs too
SVN revision: 38345
2008-12-29 11:37:44 +00:00
Gustavo Sverzut Barbieri 363ddc283d fix locking around entry_surface_alloc.
we must make sure flags are consistent with actual values, so lock
around use and set of these variables as well.



SVN revision: 38322
2008-12-26 12:50:55 +00:00
Carsten Haitzler 8b4a02c601 use correct #ifdef
SVN revision: 38314
2008-12-23 23:54:51 +00:00
Gustavo Sverzut Barbieri f4ccaaa15d Cancel preload if file a new file is set.
SVN revision: 38313
2008-12-23 23:15:53 +00:00
Gustavo Sverzut Barbieri 68bd5fb68b Possible last try to fix async imagre preload race conditions.
1 - use inlist as regular list uses non-thread safe mempool;
 2 - lock around image loading, so if main thread requests pixels right
     before worker thread is loading them, you don't get ie->info.module
     to NULL while it would be used (triggered from engines/common).
     Maybe this should be handled by a global mutex elsewhere instead of
     per-image mutex, but it has more granularity now.
 3 - emit "preloaded" callback if it was canceled to be loaded from main
     thread.

Please someone review these changes.



SVN revision: 38312
2008-12-23 23:07:48 +00:00
Gustavo Sverzut Barbieri 48d7998c6e attempt to fix image preload thread bugs 1: module refcount.
image preload will use modules from threads, there is a possibility to
crash due wrong reference counting.

actually much more can fail, we need to check modules don't keep that
needs exclusive access in globals or per-Evas_Module, but that's
another issue.

TODO: replace spinlocks with atomic operations.



SVN revision: 38309
2008-12-23 21:20:43 +00:00
Gustavo Sverzut Barbieri 586979c07b fix bugs spotted by clang static analyser.
We had some problems with preload and after running LLVM's CLang
Static Analyser we found out that current->target could be NULL after
loop.

Also fixed some GCC and CLang warnings, kudos to these wonderful tools
that "Saved The Day".

PS: we should put some CLang Static Analyser results so others can
help fix other parts of E.



SVN revision: 38293
2008-12-23 18:14:16 +00:00
Gustavo Sverzut Barbieri aa3cd47bf2 oops, fix doc example.
SVN revision: 38267
2008-12-21 18:19:33 +00:00
Gustavo Sverzut Barbieri 089b1c7925 fix image preload signature and make it callback if already preloaded.
evas_object_image_preload() should not use object as const because it
will mdofiy the object state (so it's semantic makes more sense).

if data was already loaded, then callback before ignored it (return).



SVN revision: 38246
2008-12-20 13:39:15 +00:00
Vincent Torri 4f96f46169 useless file
SVN revision: 38245
2008-12-20 13:24:27 +00:00
Vincent Torri c989841ab6 * src/modules/engines/direct3d/:
fast direct3d engine written by Dmitriy Mazovka. You rock !

 * m4/evas_check_engine.m:
 * m4/evas_check_loader.m4:
   use m4_popdef for each macro (otherwise, fail if aclocal is too old)

 * src/lib/canvas/evas_font_dir.c:
   include evas_common.h and evas_private.h after Eet.h and Evil.h
   so that EAPI is correctly defined



SVN revision: 38244
2008-12-20 13:22:46 +00:00
Gustavo Sverzut Barbieri 4821dcf1f8 always call image preloaded callback.
if image was already preloaded, inform user.

regular use case is to have image hidden, ask for preload and then
show image on callback, if there is no callback, image is never shown.



SVN revision: 38236
2008-12-19 21:56:31 +00:00
Iván Briano d413635b56 More proper fix for the infinite calculate in evas box.
SVN revision: 38205
2008-12-18 03:04:15 +00:00
Iván Briano 31658d4f1e Added iterator and accessor to box and table
SVN revision: 38203
2008-12-18 02:39:09 +00:00
Iván Briano 05af27f999 Guard box from getting into an infinite loop when calculating layout.
SVN revision: 38182
2008-12-17 14:10:09 +00:00
Carsten Haitzler 4b2fd7c5aa engine in list--
SVN revision: 38177
2008-12-17 08:24:09 +00:00
Carsten Haitzler 53c9394d3b dont need xcb engine code anymore
SVN revision: 38176
2008-12-17 08:18:13 +00:00
Carsten Haitzler fb85d912b6 vtorri's merge of xcb and x11 software engines.
SVN revision: 38173
2008-12-17 08:13:49 +00:00
Iván Briano 140b0a9fca Add function to get the length in characters of a string
SVN revision: 38158
2008-12-15 22:03:04 +00:00
Sebastian Dransfeld 804b284419 Fix hash foreach cb.
SVN revision: 38155
2008-12-15 20:49:59 +00:00
Sebastian Dransfeld 0b2c10c1c6 Add function prototypes to header.
SVN revision: 38154
2008-12-15 20:31:26 +00:00
Gustavo Sverzut Barbieri 643624fe59 helper: evas_object_image_filled.
This helper will take care of applying fill property to match object size.



SVN revision: 38120
2008-12-12 22:36:47 +00:00
Gustavo Sverzut Barbieri 11d859481f Nasty bugfix: allow smart calculate to mark object as dirty again.
Wow, this was tricky to find since it is hard to trigger, thanks to
Canola complex edje files we could spot it!

In some cases we end with object being marked as dirty while
calculating its state (ie: edje), then we need to run smart calculate
again.

This has a drawback however: we cannot check for need_recalculate()
inside smart calculate anymore, we must assume it is only called if
the flag is set. To avoid that we could mark a shadow member and use
that or use a counter, that has the problem of using more data.




SVN revision: 38108
2008-12-11 21:55:22 +00:00
Gustavo Sverzut Barbieri 3e9459fd60 Proper wrapper for evas_hash around eina_hash.
Eina hash api must get non NULL pointer allocated with
eina_hash_new(), but Evas hash started with NULL and would allocate
and destroy the hash as required by operations.

To do a proper wrapper we must ensure we don't call Eina hash API with
NULL, we must handle that outside Eina.

PLEASE do not remove this code again (it's the second time I add it),
this is the correct approach. Other than that is going after evas_hash
usage and converting directly to eina_hash.




SVN revision: 38091
2008-12-10 21:26:17 +00:00
Gustavo Sverzut Barbieri 1d560a6229 better handling of unset image fill property.
Unset value is now 0x0 and this is handled as invalid, with an error message.

1x1 is a valid fill, but it is very slow and often system hangs while
it scale the whole thing... usually nobody want it at 1x1, we just end
using that for unset values. With unset value at 0x0 it will not
happen and we'll know when we forgot to do so!.



SVN revision: 38071
2008-12-09 22:46:57 +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
Cedric BAIL 9bdf013fa4 Better put pointer at the beginning of the structure.
SVN revision: 38065
2008-12-09 17:55:33 +00:00
Davide Andreoli d77abdd28b * Better size_hint calc for vertical and horiz layout, need to do the same for the other layouts
SVN revision: 38035
2008-12-09 00:02:48 +00:00
Cedric BAIL 94aaa28ef9 Fix warning. evas_hash_free never returned anything.
SVN revision: 38019
2008-12-08 12:49:36 +00:00
Gustavo Sverzut Barbieri 8ea28f64b7 hash: better handling of NULL, add magic checking.
* evas: if we automatically destroy hash, check for NULL before
   handling it to eina api, which expect elements to be created with
   eina_hash_new() and thus will fail on NULL.
 * eina: add magic checking for eina_hash and eina_hash_iterator, this will
   help spot when NULL is used.
 * eina_hash_foreach: do not try to create the iterator if hash is NULL.



SVN revision: 37982
2008-12-07 13:28:29 +00:00