Commit Graph

1735 Commits

Author SHA1 Message Date
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
Carsten Haitzler 603dc96699 oops - use macro for .h too
SVN revision: 39459
2009-03-13 09:34:46 +00:00
Carsten Haitzler bb0e068fa1 use mutex instead of spinlock. older pthreads dont have spinlocks. also this
uses the same mutex macros used by the mutex on font objects, so it makes it
a bit simpler. old code is commented out for reference.



SVN revision: 39458
2009-03-13 09:32:42 +00:00
Vincent Torri 4dedbe0bb7 release the clipper only it has been created, that is in windowed mode
SVN revision: 39434
2009-03-10 17:55:43 +00:00
Vincent Torri 9ed772fd35 mask is a pixmap, not a drawable
SVN revision: 39404
2009-03-07 07:45:05 +00:00
Vincent Torri 5b5282ec3e remove trailing spaces
SVN revision: 39403
2009-03-07 07:00:29 +00:00
Vincent Torri fd3ec295bd remove hack about unused parameter and use __UNUSED__ instead
SVN revision: 39402
2009-03-07 06:56:42 +00:00
Cedric BAIL ed6e29a5dc * evas: Add some const.
SVN revision: 39345
2009-03-03 14:38:24 +00:00
Vincent Torri 5a8ce91119 fix warning when using some extensions defined in glext.h
SVN revision: 39341
2009-03-03 06:07:08 +00:00
Viktor Kojouharov 2b196bcc54 --oopsie in the min size calc of the flow layouts
SVN revision: 39330
2009-03-02 13:47:50 +00:00
Vincent Torri 3616db9aa6 optimize ddraw engine : when locking a surface, don't allow Windows
to suspend operations. expedite runs with around 7 points more than
without those flags on my computer


SVN revision: 39316
2009-03-01 21:09:39 +00:00
Viktor Kojouharov a5a7e167d9 more accurate min size calculation for flow layouts
SVN revision: 39310
2009-03-01 16:27:03 +00:00
Gustavo Sverzut Barbieri 87d5d0a037 Mark as changed when smooth scale flag changes.
This allows us to change to non-smooth on animations and then back to
smooth after animation is done.



SVN revision: 39300
2009-02-28 20:09:03 +00:00
Gustavo Sverzut Barbieri 071ad5b4aa minor optimizations to box recalculation.
just recalculate when required, and just mark as required when layout
really changes.



SVN revision: 39299
2009-02-28 20:04:55 +00:00
Viktor Kojouharov 999e7c9c54 size min hints for the flow layouts
SVN revision: 39297
2009-02-28 19:33:30 +00:00
Gustavo Sverzut Barbieri 5be0dac611 Split files so we can avoid "defined but not used" warnings.
SVN revision: 39295
2009-02-28 18:47:17 +00:00
Gustavo Sverzut Barbieri 3fb821ca1d shutdown cache, hope it works like in common/32 engine.
SVN revision: 39294
2009-02-28 18:36:18 +00:00
Viktor Kojouharov 1b197b9542 it actually makes sense to have them overlap on justify, so go back
SVN revision: 39293
2009-02-28 18:06:37 +00:00
Viktor Kojouharov fee3b366bf and also for the vertical layout
SVN revision: 39291
2009-02-28 17:56:06 +00:00
Viktor Kojouharov 6554ab44d6 fix smaller-box-than-items problem for horizontal layout
SVN revision: 39289
2009-02-28 17:50:15 +00:00
Gustavo Sverzut Barbieri 0cd52d626b Fix flow layout if box size is smaller than required.
Reported and fix suggestion by Viktor Kojouharov.



SVN revision: 39286
2009-02-28 17:10:03 +00:00
Gustavo Sverzut Barbieri e46171ee07 box: remove unused parameters
SVN revision: 39285
2009-02-28 17:07:10 +00:00
Vincent Torri c5e64e50b7 fix comment
SVN revision: 39280
2009-02-28 13:02:17 +00:00
Vincent Torri 6696a9c87b * remove 'unused parameter' warnings
* i didn't touch glitz engine as it will certainly be disabled later
 * i'll update windows engines later


SVN revision: 39274
2009-02-28 10:08:45 +00:00
Gustavo Sverzut Barbieri 56e28f91b6 Remove last standing warnings.
SVN revision: 39269
2009-02-27 16:35:32 +00:00
Gustavo Sverzut Barbieri 59236beb8b Oops, missing file.
GIT would help me avoid this mess.



SVN revision: 39268
2009-02-27 16:33:50 +00:00
Gustavo Sverzut Barbieri 9a3570bfb9 Create macros to help initialize class structures.
also defined evas_smart_new() as deprecated.



SVN revision: 39266
2009-02-27 15:30:32 +00:00
Vincent Torri 389a006871 does not return a value in function returning void
SVN revision: 39224
2009-02-25 23:39:59 +00:00
Vincent Torri 7dd1e9e055 remove more 'unused parameter' warnings
SVN revision: 39223
2009-02-25 23:39:19 +00:00
Vincent Torri 4d1961ac59 remove 'unused parameter' warning
SVN revision: 39222
2009-02-25 23:18:15 +00:00
Vincent Torri 725d8b4bfb use pm instead of PAL_MODE_RGB666 when allocating colors
SVN revision: 39188
2009-02-25 07:24:53 +00:00
Gustavo Sverzut Barbieri adab85b566 directfb: Oops, don't give bogus data to image_data.
This fixes changing image subareas with directfb engine and
eve/webkit-efl works fine.

Thanks to Gustavo Lima Chaves.



SVN revision: 39185
2009-02-24 22:46:45 +00:00
Vincent Torri f344743dae fix some warnings reported by llvm (see http://local.profusion.mobi:8081/~lfelipe/output-efl/)
* mainly unused parameters
 * in src/lib/imaging/evas_imaging.c, set font to NULL
 * in src/lib/canvas/evas_object_gradient.c, add unititialized member

there are a *lot* of reported warnings by llvm, i'll fix them later

there are also *lots* of unused parameters (compile evas with -W). I'll
fix them later too



SVN revision: 39172
2009-02-24 08:31:31 +00:00
Vincent Torri 0af29b19d6 sync when needed
SVN revision: 39171
2009-02-24 07:06:14 +00:00
Carsten Haitzler 842cadce24 update debug code.
SVN revision: 39154
2009-02-23 07:21:37 +00:00
Carsten Haitzler fca6a09640 fix font cutout clip bug.
SVN revision: 39153
2009-02-23 07:20:21 +00:00
Vincent Torri fe8b378c87 fix xrender xcb engine
SVN revision: 39135
2009-02-22 11:24:08 +00:00
Carsten Haitzler 4907a1f07e fix premul default value for tiff loader
SVN revision: 39134
2009-02-22 09:19:11 +00:00
Vincent Torri 373d55b48e remove trailing spaces
SVN revision: 39117
2009-02-21 08:19:58 +00:00
Vincent Torri a005e1000a make gl engine able to use cutouts - in some cases its faster, some
slower. it's a mixed bag. not sure what to make of it. it's #defined to be
disabled atm. (synchronize with gl_x11 code)


SVN revision: 39116
2009-02-21 08:18:53 +00:00
Carsten Haitzler 7a74942b41 1. make software font draw code actually use cutouts.
2. make gl engine able to use cutouts - in some cases its faster, some
slower. it's a mixed bag. not sure what to make of it. it's #defined to be
disabled atm.



SVN revision: 39114
2009-02-21 03:13:49 +00:00
Cedric BAIL 720a9efe71 * evas_object_image.c: Remove a warning and return 1 as a success.
SVN revision: 39060
2009-02-17 17:36:29 +00:00
Carsten Haitzler 9062c9050a and support obscured rects for clip-out if middle of bordered image set to
solid. speedup.



SVN revision: 39051
2009-02-17 04:53:03 +00:00
Vincent Torri 860fc287c2 free correctly each buffer in XCB engine
The xcb_image dependency should be removed and replaced
by direct calls of the request XPutImage


SVN revision: 39024
2009-02-15 11:14:12 +00:00
Carsten Haitzler bda789960a fix minor bug in fill mode.
SVN revision: 39020
2009-02-15 02:53:24 +00:00
rephorm a3fdd2ab4e don't return NaN for hue if r=g=b
SVN revision: 39019
2009-02-15 01:53:02 +00:00
Cedric BAIL 630e5f1558 * evas/lib/canvas/evas_async_events.c: Use memset instead of PACKED.
SVN revision: 39003
2009-02-12 17:05:17 +00:00
Carsten Haitzler cb94c8fadd in theory - (not tested yet) allow hitns to set middle to solid of
borderscaling.



SVN revision: 39000
2009-02-12 13:38:33 +00:00
Cedric BAIL 166c76146d * evas/m4/ac_attribute.m4,
* evas/src/lib/canvas/evas_async_events.c: Fix long standing warning from valgrind.



SVN revision: 38996
2009-02-11 17:56:03 +00:00
Cedric BAIL b70ae3c927 * evas/src/lib/include/evas_common.h,
* evas/src/lib/engines/common/evas_font.h,
	* evas/src/lib/engines/common/evas_font_draw.c,
	* evas/src/lib/engines/common/evas_font_load.c,
	* evas/src/lib/engines/common/evas_font_query.c: Add cache for font kerning.

This patch give something around 2% for all tests around text in expedite,
except for Textblock Intl where it give a 3 times boost.

Regarding text rendering speed, something is strange when used by evas_pipe.
All tests using Styles are around 40% faster without evas_pipe. 30% faster
for Text Change. But Text Basic 7% slower. So it should be possible to have
faster rendering when using evas_pipe for font rendering.


SVN revision: 38993
2009-02-10 15:53:17 +00:00
Gustavo Sverzut Barbieri ad1af73d40 Do not inform callbacks that did not changed the state of object.
For some unknown reason evas was informing EVAS_CALLBACK_* even if the
original call did not changed the internal object state, that is, new
value is already equal to current value.

This is specially costly since Edje, Box, Table and possible other
layout engines will call evas_object_resize(), move(), show(), hide()
even if the state has not changed, assuming evas will ignore the call
(as it does). The real overhead might come if there are listeners
attached to these events, that in turn might do lots of other stuff,
leading to a torrent of useless calls.

I marked it for removal, please test it and uncomment '#define
CALLBACK_NOOPS' to get the old behavior back. It does seems to work
with e17 and edje_editor. If problems appear, let's try to fix the
real problem instead of getting this code back, it's a performance
penalty.



SVN revision: 38955
2009-02-05 14:37:58 +00:00
Gustavo Sverzut Barbieri a6e8f2cd36 Do not recalculate table/box if size does not really changed.
SVN revision: 38950
2009-02-05 12:38:04 +00:00
Carsten Haitzler 2025e3db2b check for null inputs in imaging and dont segv if u get them
SVN revision: 38851
2009-01-29 23:01:24 +00:00
Vincent Torri 76853a3e6c make the direct3d engine working with d3dx9 header files
from Microsoft SDK (november 2008)

Patch by Roberto Huelga (modified + minor improvements)


SVN revision: 38850
2009-01-29 21:32:26 +00:00
Gustavo Sverzut Barbieri 66b3a0a0f1 load_size option now accept -1xH or Wx-1
If one want to load image at a given height or width and the other
dimension should be large enough to make it possible, give -1 as the
other coordinate and this will happen.



SVN revision: 38845
2009-01-29 16:45:14 +00:00
Carsten Haitzler 7b370535a0 extra fragment shader prog to 0 call. remove. useless.
SVN revision: 38820
2009-01-27 23:57:21 +00:00
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