Commit Graph

3005 Commits

Author SHA1 Message Date
Mike Blumenkrantz 64fcf02198 close file on error
SVN revision: 56103
2011-01-14 06:50:32 +00:00
Mike Blumenkrantz b2e46be157 prevent macro null derefs
SVN revision: 56102
2011-01-14 06:46:04 +00:00
Mike Blumenkrantz fe45654e16 x = x
SVN revision: 56101
2011-01-14 06:36:36 +00:00
Mike Blumenkrantz 4f5e4e0765 sighhh add more calloc checks
SVN revision: 56100
2011-01-14 06:35:41 +00:00
Mike Blumenkrantz d46942090d unless I'm going insane, this should return here to avoid an immediate null deref with configs[i]
SVN revision: 56099
2011-01-14 06:35:03 +00:00
Mike Blumenkrantz 39eb62a758 add calloc check to avoid null deref
SVN revision: 56098
2011-01-14 06:28:40 +00:00
Mike Blumenkrantz 447d2c91dc avoid possible null deref
SVN revision: 56097
2011-01-14 06:27:10 +00:00
Mike Blumenkrantz 14ff070f5c comment out some variables which are not currently implemented/used
SVN revision: 56096
2011-01-14 06:21:24 +00:00
Mike Blumenkrantz 4dd3d0d441 another dead store
SVN revision: 56095
2011-01-14 06:16:50 +00:00
Mike Blumenkrantz fbb73e32a9 another dead store
SVN revision: 56094
2011-01-14 06:14:39 +00:00
Mike Blumenkrantz b050405d35 avoid setting value that will never be read
SVN revision: 56093
2011-01-14 06:13:09 +00:00
Mike Blumenkrantz 930a112d6f this is never read, so remove it
SVN revision: 56092
2011-01-14 06:11:07 +00:00
Carsten Haitzler fdc17c8c84 oooh thank you valgrind! found some bad mem access stuff in the gl
engine on shutdown. was freeing the wring kind of thing in the first
place.. and even then it should be more robust, so fix gl texture
robustness and this bug. can cause on-exit crashes if not fixed.



SVN revision: 56068
2011-01-13 10:41:08 +00:00
Tom Hacohen 1e99ccd5f9 Evas textblock: Fixed a memory leak when removing format nodes.
SVN revision: 56058
2011-01-12 15:27:53 +00:00
Carsten Haitzler da9bf3353f oooh oops. all calls to cache_prune already lock for it.. so deadlock!
fix fix! sorry!



SVN revision: 56043
2011-01-11 08:12:32 +00:00
Carsten Haitzler 49f5946b26 remove dangling useless template code
SVN revision: 56038
2011-01-11 05:43:48 +00:00
Carsten Haitzler 04ab07667b fix possible thread lock issue - scalecache wasnt locked in 1
circumstance.



SVN revision: 56037
2011-01-11 05:43:10 +00:00
Tom Hacohen 2fd2aaf151 Evas textblock: Fixed cursor pos set to work correctly in case the character being pointed at is the last character in the last paragraph. Also prevented a bug that may happen with an empty paragraph. Thanks to Mr. Myungjae Lee.
SVN revision: 56020
2011-01-10 07:23:31 +00:00
Carsten Haitzler 6502ea96ea hve to revert these commits. they hve created a whole chunk of 64bit
crashes on linux. this is REALLY bad. so remove these changes now.



SVN revision: 55981
2011-01-07 15:56:54 +00:00
Carsten Haitzler 87a0e6575d and avoid some work if there is nothing to flush at all.
SVN revision: 55978
2011-01-07 10:22:22 +00:00
Carsten Haitzler d7e8cfba62 egl actually doesnt need a full reset - we CAN get the current context
and draw/read surfaces.



SVN revision: 55977
2011-01-07 10:16:17 +00:00
Carsten Haitzler 13df30ab2b i read the other day that glgeterror... causes driverstalls.. at least
in some drivers/architectures... so this may slow things down. disable.



SVN revision: 55976
2011-01-07 10:04:41 +00:00
Vincent Torri 72128a6ae3 typo
SVN revision: 55971
2011-01-07 06:51:55 +00:00
Vincent Torri fe85acc06d use configure-time headers checks instead of compiler ones
SVN revision: 55970
2011-01-07 06:48:33 +00:00
Vincent Torri f792b1eec5 missing doxygen tag
SVN revision: 55969
2011-01-07 06:37:59 +00:00
Atton Jonathan aa2733a4ba fix evas map bug -
From: Atton Jonathan <jonathan.atton@gmail.com>
Subject: Re: [E-devel] Evas map and the attribute "color" and clip

Here a application. The test here is a bit different from the case in my
appliaction.

I have :
- 1 gengrid
- 1 elm layout as icon in the grid item
- a edje group swallowed in the elm layout. This group has a rotation.
It is
a red rectangle.

When I select the item :
- if no map : the rectangle disappear because the grid item add a
rectangle
in front of the red rectangle.
- if map : only a part of the red rectangle disappear. If I resize the
window sometime the rectangle disappear, sometimes a part appear.

2 screenshots are in the archive.

:)
that one.



SVN revision: 55927
2011-01-06 08:02:37 +00:00
Vincent Torri f3df2fcce9 typo
SVN revision: 55858
2011-01-04 23:16:34 +00:00
Carsten Haitzler f9277782e7 ooh map bug! bug bug bug! fix! (thanks valgrind)
SVN revision: 55826
2011-01-03 10:12:17 +00:00
Tom Hacohen 1557b40d76 Evas textblock: Fixed evas_textblock_cursor_pos_set's handling with out of bound positions.
SVN revision: 55757
2010-12-26 12:01:21 +00:00
Carsten Haitzler efc042f2e7 missing support for swapinterval api in glx.
SVN revision: 55754
2010-12-26 10:15:28 +00:00
Carsten Haitzler 19d4f8affc add unload callback - missing event problem that makes it impossible
for client apps that tried to be efficient with preloads to adapt
when the preloaded data is taken away from them. this allows it.
missing callback api bug fix.



SVN revision: 55745
2010-12-24 16:04:27 +00:00
Tom Hacohen 6481adfb2b Evas textblock: Fixed cursor_pos_get/set to be absolute, and not node specific like they were.
SVN revision: 55738
2010-12-23 12:47:23 +00:00
Vincent Torri bb9de107ad preload_done member is declared only if async preload is enabled
SVN revision: 55627
2010-12-18 10:09:58 +00:00
Vincent Torri c60b4933c0 preload_done member is declared only if async preload is enabled
SVN revision: 55626
2010-12-18 09:59:50 +00:00
Vincent Torri 9064029863 missing declaration
SVN revision: 55625
2010-12-18 08:48:58 +00:00
Vincent Torri 366ab7acf0 vc++ does not like unistd.h. Actually, maybe we should check some
non standard headers in configure.ac and guard them appropriately

SVN revision: 55613
2010-12-17 17:00:57 +00:00
Cedric BAIL 44d8edfc0f * evas: fix typo.
SVN revision: 55559
2010-12-15 10:40:57 +00:00
Cedric BAIL 77cb7b50d6 * evas: better fix for path init.
SVN revision: 55553
2010-12-14 14:17:07 +00:00
Carsten Haitzler 62c8659619 fixed async preload stall bug! still 1 issue left when caches
(scalecaches) are flushed which can cause a hang until all data is
"loaded back in" again. it's a bit of a doosey actually and so isn't
fixed here.



SVN revision: 55551
2010-12-14 10:22:06 +00:00
Carsten Haitzler d3cd14c805 lockdebug - be able to find mutexes that lock for a while... but.. i
found what was blocking.. and it wasnt a mutex! well.. put this in for
further debugging later.



SVN revision: 55544
2010-12-14 05:41:32 +00:00
Carsten Haitzler 60458017fb warning--
SVN revision: 55543
2010-12-14 03:11:03 +00:00
Carsten Haitzler bd3ae0dc9d fix warning.
SVN revision: 55542
2010-12-14 03:09:01 +00:00
Cedric BAIL ab1228576f * evas: fix a long standing bug. Don't know how no one
else saw it before.


SVN revision: 55536
2010-12-13 13:25:39 +00:00
Carsten Haitzler b493685f89 set clobber info right for neon test.
SVN revision: 55529
2010-12-13 03:56:53 +00:00
Vincent Torri 2e0a136385 warnings--
SVN revision: 55496
2010-12-11 13:17:26 +00:00
Vincent Torri 4594a53cd1 declare variables at the beginning of the block
SVN revision: 55491
2010-12-11 09:00:13 +00:00
Cedric BAIL 30099cb45f * evas: fix polygon position on clear.
Patch by YUNHAN KIM <yhan.kim@samsung.com>


SVN revision: 55404
2010-12-09 10:33:23 +00:00
Tom Hacohen 47da7ff122 Evas textblock: Fixed a major bug in last_at_off.
SVN revision: 55375
2010-12-08 15:41:21 +00:00
Cedric BAIL 36e4de5f51 * evas: notice object change on map color change.
SVN revision: 55335
2010-12-06 22:28:38 +00:00
Carsten Haitzler 59b94cec34 and dont seg there.
SVN revision: 55319
2010-12-06 09:07:56 +00:00
Carsten Haitzler fa337f7f7f and only check version if surf != NULL
SVN revision: 55318
2010-12-06 09:02:16 +00:00
Brett Nash f2e4cc5555 Evas: Neon: Do neon test if ARM...
Not ARM 70.  So this should you know... turn on the neon test.

SVN revision: 55317
2010-12-06 07:53:33 +00:00
Carsten Haitzler 640a4030f3 change native api to allow for other types of native data like texture
id's, fbo's etc. too - at least it's versioned now.



SVN revision: 55315
2010-12-06 07:09:51 +00:00
Brett Nash 157bf3a573 Evas: Neon: More .fpu neon flags
Also clean up some ugly code.

SVN revision: 55314
2010-12-06 04:57:54 +00:00
Brett Nash ee03254a3e Be more aggresive turning on neon, and don't include arm_neon.h
The arm_neon header is for the Neon intrinsics.
Since we use inline asm, we don't need any of that stuff.
Also we set neon to be on if your compiler accepts it (and it's a arm).
So more people may get neon builds.

SVN revision: 55312
2010-12-06 02:20:31 +00:00
Brett Nash 19c28b345f Evas: Neon: Explicitly set the .fpu flag for neon.
This means you should not need to set any special compiler flags; which should
mean gcc will generate non-neon specific asm (unless you tell it to).  This
means it is possible to build an armv6 binary with neon suppor (as we always
meant to to do).

SVN revision: 55307
2010-12-06 01:50:32 +00:00
Cedric BAIL 1ca29e1649 * evas: reorder header as needed.
SVN revision: 55199
2010-12-03 16:47:05 +00:00
Carsten Haitzler cb41bf7dbd From: 백근훈 [mailto:knhoon.baik@samsung.com]
Subject: evas scalecache 관련 패치 검토 요청
...

There is the report that evas_engine_dump() does not dump scalecache.
Knhoon made a patch for that.



SVN revision: 55178
2010-12-03 09:36:17 +00:00
Carsten Haitzler 4147f2f231 make sure we ensure out gl context is current at each frame start
SVN revision: 55131
2010-12-02 08:01:19 +00:00
Carsten Haitzler 10bfc098fb fix neon (thnx nash) to not round down incorrectly on blend
SVN revision: 55115
2010-12-01 09:46:49 +00:00
Carsten Haitzler afa0050f32 fix smooth scaler to not round down incorrectly.
SVN revision: 55114
2010-12-01 09:46:26 +00:00
Tom Hacohen 92c16f8892 Evas textblock: Fixed a bug with inserting text before a <PS>.
SVN revision: 55064
2010-11-29 15:04:44 +00:00
Carsten Haitzler c75b63a482 evas -> use mempool for many objects and things. but.. disable it for
now. use old calloc+free thing for 1.0 and enable mpool for 1.1. this
is just done in advance but disabled for some testing purposes looking
for some bugs.



SVN revision: 55006
2010-11-26 10:01:18 +00:00
helen 750d360c97 evas_object_image_file_set can receives null to unset
Passing null to the second parameter is the only way to unset
the file, so it should not have EINA_ARG_NONNULL to the file parameter

SVN revision: 54998
2010-11-25 19:41:59 +00:00
Cedric BAIL c9b34768ef * evas: remove useless header.
SVN revision: 54790
2010-11-22 14:19:08 +00:00
Cedric BAIL 6de3f7e778 * evas: fix static build of GL SDL engine.
SVN revision: 54589
2010-11-16 13:09:14 +00:00
Cedric BAIL bc9e164c12 * evas: fix frame building.
SVN revision: 54584
2010-11-16 10:52:10 +00:00
Carsten Haitzler f5b7648de0 make cutout rect blocks a bit bigger.
SVN revision: 54547
2010-11-14 06:00:35 +00:00
Cedric BAIL 83b8ee3cd8 * evas: provide alternative schema for finding framebuffer.
Patch by Eduardo Felipe <eduardofelipe87@gmail.com>


SVN revision: 54472
2010-11-11 18:48:50 +00:00
Tom Hacohen 7bf2353f96 Evas font-engine: Fixed the first miss breaks font bug and removed the work around. My tests show it work, but just to make sure, if it doesn't for you, let me know.
SVN revision: 54456
2010-11-11 13:07:04 +00:00
Carsten Haitzler 2b6b563f62 add scroll flag in addition to hold flag.
SVN revision: 54355
2010-11-09 05:23:34 +00:00
Cedric BAIL 87d707ee2c * evas: some style fix.
SVN revision: 54331
2010-11-08 14:34:19 +00:00
Cedric BAIL 4e1ea67122 * evas: don't segv when manipulating line at canvas border.
FIXME: When the jump code start, it break line continuity and
	make them look hugly. I have no idea how to properly fix that
	right now.


SVN revision: 54330
2010-11-08 14:31:22 +00:00
Tom Hacohen f575ca46b6 Evas textblock: Fixed range_delete to not move the main cursor if it's not inside the deleted range.
SVN revision: 54320
2010-11-08 07:46:43 +00:00
Vincent Torri 8d05590677 set log domain to -1 after unregistering it
SVN revision: 54222
2010-11-06 09:42:24 +00:00
Cedric BAIL 4b50987072 * evas: fix possible off by one bug with line object.
Reported by Daniele.


SVN revision: 54182
2010-11-05 14:59:22 +00:00
Tom Hacohen da512dde9b Evas font-engine: Don't break if there was a previous miss. This is a workaround for a bug in the font index caching mechanism that happens if you cache the index miss before all the fonts were changed. We should probably just put a "dirty" flag on font sets that loaded more fonts or something like that.
SVN revision: 54157
2010-11-04 16:32:42 +00:00
Cedric BAIL 3ede459046 * evas: fix polygon move on first frame.
SVN revision: 54144
2010-11-04 11:05:38 +00:00
Carsten Haitzler 29a707fdf8 eek - case of stride value being wrong! fix!
SVN revision: 54087
2010-11-02 08:18:16 +00:00
Carsten Haitzler 05246414c6 oops - in the process i disabled the multiple fonts in the fontsets to
load on demand when first needed. fixed. rendering etc. works again
for all intl fonts.



SVN revision: 54085
2010-11-02 04:56:57 +00:00
Carsten Haitzler e0e6020902 work on fixing up a font "leak". its disabled via returns in funcs -
but also added in 24bit unicode support. needed for unicode v6
absolutely.. so we can have the pile of poo char work.



SVN revision: 53987
2010-10-29 12:55:42 +00:00
Carsten Haitzler 9fe4dfe9b3 put in some disabled cache dump dbg.
SVN revision: 53949
2010-10-28 10:00:22 +00:00
Carsten Haitzler cb7268cbac formatting.
SVN revision: 53908
2010-10-27 00:03:49 +00:00
Carsten Haitzler c5661c4471 and that tga entry too
SVN revision: 53890
2010-10-26 08:29:39 +00:00
Carsten Haitzler ef332fcf44 forgot tga loader in static list
SVN revision: 53889
2010-10-26 08:28:12 +00:00
Carsten Haitzler 3a568d6fd4 fmting.
SVN revision: 53887
2010-10-26 07:00:26 +00:00
Carsten Haitzler 381728fb86 forgot to allow bmp loader to be static.
SVN revision: 53885
2010-10-26 02:55:56 +00:00
Carsten Haitzler 541394175a fix tasn bug++
SVN revision: 53860
2010-10-25 11:56:20 +00:00
Carsten Haitzler 3a9d3268d2 fix warnings in async render code.. and well.. warn about it - it
crashes for me in expedite with 4 cores on x86 at random points. looks
like it's bitrotting. though it was relatively tentative to begin with.



SVN revision: 53856
2010-10-25 11:27:17 +00:00
Tom Hacohen 79ec0e7975 Evas font-engine: Silence gcc about a possible use of unitialized value which can't really happen. Add parenthesis where needed.
SVN revision: 53855
2010-10-25 11:24:25 +00:00
Carsten Haitzler 91946c9430 unsigned INT!
SVN revision: 53853
2010-10-25 10:41:36 +00:00
Carsten Haitzler 2a9c976ec0 only set swap interval if it changes for egl - and dont waitgl if swap
native is available.



SVN revision: 53849
2010-10-25 07:22:43 +00:00
Carsten Haitzler 57b70bdb14 put in special known "save native" case to avoid needing the env var.
SVN revision: 53844
2010-10-25 01:57:48 +00:00
Carsten Haitzler 5bf2fbcc63 make sure they are extern fn pointers
SVN revision: 53831
2010-10-24 13:30:27 +00:00
Tom Hacohen 9a89173df6 Evas font-engine: Reverted my hack in 53828 because cedric already implemented clipping to object geometry.
SVN revision: 53830
2010-10-24 12:28:36 +00:00
Tom Hacohen b705c2c038 Evas font-engine: Hacked around a wrong setting of clipping in textblock. - Email in ML will soon follow.
SVN revision: 53828
2010-10-24 10:59:52 +00:00
Fabiano Fidêncio 76e6a7fac6 Remove warnings from evas_preload
Use EINA_INLIST_CONTAINER_GET instead of cast to
(Evas_Preload_Pthread_Worker*) to get  eina_inlist_remove's return.

This works even if the first field of Evas_Preload_Pthread_Worker is no
longer a EINA_INLIST

Patch by: Fabiano Fidêncio <fabianofidencio@gmail.com>



SVN revision: 53826
2010-10-23 22:33:33 +00:00
Carsten Haitzler d3a897bb54 allow evas gl engine skipping wait native if known to be safe.
SVN revision: 53760
2010-10-22 08:17:37 +00:00
Christopher Michael 534c5d617d Fix doxy typo.
SVN revision: 53677
2010-10-20 16:18:52 +00:00
Carsten Haitzler 2e395b8605 fix shutdown - clear up has entrie handles.
SVN revision: 53667
2010-10-20 13:59:23 +00:00
Tom Hacohen ed649440b8 Evas textblock: Fixed docs. Patch by Jihoon Kim.
SVN revision: 53650
2010-10-20 10:30:02 +00:00
xcomputerman b59fa21d74 Better.
SVN revision: 53584
2010-10-18 23:02:02 +00:00
xcomputerman 6c2545adc7 Fix compile for gl_sdl engine, now builds again
SVN revision: 53579
2010-10-18 19:17:59 +00:00
Iván Briano 44365ab591 Oh look, I had some docs to commit and forgot about them.
SVN revision: 53450
2010-10-15 13:24:51 +00:00
Carsten Haitzler be7683efbd you wouldnt believe it if i told you.. but put in a block to disallow
move or resize of an obj WHILE in the middle of a move or resize
already - some weird case someone has come up with where this happens
and things like smart clipped's "move relatvie by dx, dy" totally
screw up then. it's a totally unexpected case though. some circular
action has been created that logically shouldn't have existed.



SVN revision: 53434
2010-10-15 05:39:53 +00:00
Cedric BAIL d88f751b16 * evas: prevent possible segv.
SVN revision: 53408
2010-10-14 15:52:10 +00:00
Cedric BAIL 921c1a8c87 * evas: force the update to only affect the currently processed area.
WARNING: PLEASE REVIEW THAT PATCH !


SVN revision: 53402
2010-10-14 14:41:13 +00:00
Carsten Haitzler 6debefec1c fix stride - again. but no one noticed this one ... yet :)
SVN revision: 53388
2010-10-14 03:21:20 +00:00
Lucas De Marchi 0fccfcb4cf Fix bug in evas_smart_cb_descriptions_fix.
The last element of descriptions array was always removed.

By: Otavio Pontes <otavio@profusion.mobi>



SVN revision: 53379
2010-10-13 19:40:11 +00:00
Cedric BAIL 625d84003e * evas: don't use eina_list in thread that's not safe.
SVN revision: 53359
2010-10-13 15:22:13 +00:00
Tom Hacohen 5dc604ff78 Evas text: Fixed inset handling.
SVN revision: 53357
2010-10-13 14:14:40 +00:00
Tom Hacohen 8d0492fcfd Evas textblock + font engine: Don't take inset into account when not needed.
SVN revision: 53353
2010-10-13 13:33:59 +00:00
Tom Hacohen 6193b5e91d Evas text object: Fixed shaping.
SVN revision: 53301
2010-10-12 09:36:58 +00:00
Carsten Haitzler 197fa433cb fix clip bug.
SVN revision: 53261
2010-10-11 09:53:52 +00:00
Carsten Haitzler 59208f38b8 disable ref.
SVN revision: 53183
2010-10-08 11:21:37 +00:00
Carsten Haitzler 6bbe56fefc fix for dyn image size change.
SVN revision: 53180
2010-10-08 05:11:32 +00:00
Gustavo Sverzut Barbieri 379b546adf better logging.
* log domains in lower-case only please. let's make it a standard so
   we don't have to look at the code everytime to figure out the name...

 * logs do NOT require trailing newline (\n), it's automatic!

 * do NOT add newline inside log messages!

 * add gl_common logging.

NOTE: I tried to compile all modules, but there are clear broken
      modules such as cairo and qtopia. Other modules like gl_sdl are
      broken as they were not updated to new gl_common api (resize
      method AFAIR).



SVN revision: 53174
2010-10-07 23:46:42 +00:00
Christopher Michael 2f3b2b99e5 Fix issue when using word-cache: Make sure we have a 'last' word
before trying to free it, else we segfault.

Fix compiler warnings wrt const vs non-const of Evas_BiDi_Props.
Fix formatting and remove whitespace also.

NB: The major change here is in evas_font_word_prerender wrt freeing
the 'last' word of the cache.



SVN revision: 53166
2010-10-07 21:07:53 +00:00
Eduardo de Barros Lima f61a1cb5cb Evas: Don't #define _GNU_SOURCE
Instead use AC_GNU_SOURCE macro in configure.ac and #include <config.h> properly


SVN revision: 53159
2010-10-07 19:52:47 +00:00
Cedric BAIL 2d5b568ad6 * evas: fix bug in box vertical layout preventing object to
reduce size properly.

	Bug reported by Boris 'billiob' Faure <billiob@gmail.com>


SVN revision: 53142
2010-10-07 14:09:17 +00:00
Carsten Haitzler 00a661beae shortcut some smart acceses for clipped smart.
SVN revision: 53132
2010-10-07 03:54:51 +00:00
Tom Hacohen 94839799fd Evas textblock: Removed duplicated if.
SVN revision: 53108
2010-10-06 18:26:29 +00:00
Tom Hacohen fc060c6a8f Evas font query: query coords should not take bitmap positioning into account.
SVN revision: 53097
2010-10-06 12:24:14 +00:00
Carsten Haitzler 4b96e37067 i think i foundsed me a fontconfig bug.. this i think is a
workartound.. it depends what fc's intent was tho.



SVN revision: 53093
2010-10-06 08:53:06 +00:00
Tom Hacohen 9dc6cd0c51 Evas textblock: Fixed a type in remove_pair that caused issues with offset adjustment of formats.
SVN revision: 53092
2010-10-06 08:45:10 +00:00
Tom Hacohen eddca25d99 Evas textblock: Fix bug with removing formats, format removal should stop at 'end' non-inclusive, just like text removal works.
SVN revision: 53068
2010-10-05 16:17:04 +00:00
Tom Hacohen 0896d2b013 Evas textblock: Fixed a bug with deleting range when the first char is a visible format.
SVN revision: 53067
2010-10-05 16:17:01 +00:00
Tom Hacohen cfa9703607 Evas textblock and font engine: Fixed cursor position to be at the end of the current item, and not the end of the line, this looks nicer in bidi strings.
Fixed querying char coords to return the current position of the NULL according to the text's alignment, not the paragraph's.

SVN revision: 53061
2010-10-05 14:05:23 +00:00
Tom Hacohen dd9dc0e4ec Evas textblock: In continuation to the previous commit: range get should also work up until the char, not including.
SVN revision: 53054
2010-10-05 10:50:58 +00:00
Tom Hacohen 6b4743aa40 Evas textblock: Selection should work from the start cursor up to before the end cursor, i.e it should *not* include the end cursor.
SVN revision: 53053
2010-10-05 10:44:40 +00:00
Carsten Haitzler 21a7dde012 dynamic tex ref wrong. fix.
SVN revision: 53027
2010-10-04 11:17:11 +00:00
Christopher Michael f95baa679b Reduce variable useage for evas_object_box by using #define's instead
of const char's for signal strings.

Fix some formatting.



SVN revision: 53007
2010-10-04 06:03:48 +00:00
Tom Hacohen 331db4a378 Evas textblock: Added a small comment about where to find textblock style usage example.
SVN revision: 53001
2010-10-03 16:42:56 +00:00
Christopher Michael 5ee58fab59 Fix some misspellings.
SVN revision: 52990
2010-10-03 01:44:21 +00:00
Carsten Haitzler 3fad0649a6 eek stride should be in bytes - to allow for various image formats.
fix for fallback.



SVN revision: 52948
2010-10-01 12:18:18 +00:00
Howell Tam 307190c594 From: Howell Tam <howell.tam@fluffyspider.com>
Subject: Evas evas_gl_shader.c patch

Patch for evas_gl_shader.c, need to check shader compile
errors too, not only program linking errors.

Not that it's very useful now since all Evas' shaders are in
good shape already, but it was useful when we're mucking around with
things.

And also to make Robi happy that there are some FST
contributions to E ;) And probably more to come...



SVN revision: 52941
2010-10-01 06:33:17 +00:00
Carsten Haitzler 6abe0b3a94 fix flipped object texture if map enabled AND object happens to be
exactly viewport size.



SVN revision: 52940
2010-10-01 06:22:31 +00:00
Carsten Haitzler 5b45763676 aaaah and map in map clip and more bug fixes...
SVN revision: 52939
2010-10-01 04:46:04 +00:00
Carsten Haitzler 94bfb8fbe6 map in map render bug with gl - fix.
SVN revision: 52936
2010-10-01 03:40:12 +00:00
Carsten Haitzler 0e560f9db2 and make values int so we can have "-1" :)
SVN revision: 52934
2010-09-30 23:23:51 +00:00
Carsten Haitzler 5938bb97f7 found the gl engine flashing white bug with laucnher 3 map test! aaah
gl state bug/assumption. reset state when moving from 1 surface target
to another and then we are all happy. also fix lip geometry issue in
gl when rendering to non-default surf - related.



SVN revision: 52933
2010-09-30 23:20:26 +00:00
Carsten Haitzler ae6922fbd0 make sure that at any point if gl barfs... abort then.
SVN revision: 52838
2010-09-28 04:13:28 +00:00
Cedric BAIL 801917565f * evas: fix rendering of object with color (*,*,*,0)
and render_op != BLEND.


SVN revision: 52782
2010-09-26 16:10:59 +00:00
Chidambar 'ilLogict' Zinnoury 15dd911de3 From: Chidambar 'ilLogict' Zinnoury <illogict@online.fr>
Subject: [E-devel] [tentative patch] evas memleak when no callbacks

 I'm seeing some memleaks while using Evas' buffer engine. After
 investigation, it seems that evas_free does nothing and returns
 immediately if the canvas has no callbacks, which is what happens with
 the buffer engine.
 
  The attached patch seems to do the trick.
  
   However, as I don't know that much Evas' internals, I thought it'd be
   better to ask whether it's correct or I'm mistaken before committing.
   
    So please comment.
    


SVN revision: 52769
2010-09-26 02:27:01 +00:00
Carsten Haitzler 9e7bc3f53e wooo overzealous commenting. fix. better now.
SVN revision: 52734
2010-09-25 14:46:10 +00:00
Carsten Haitzler 0e2ec32263 working on debug. doesn't affect anything atm.
SVN revision: 52733
2010-09-25 14:30:02 +00:00
Carsten Haitzler 348f454537 well that improves map a bit! less overdraw! :) and 1 bug fixed. still
1 left.



SVN revision: 52727
2010-09-25 06:19:30 +00:00
Vincent Torri 98247ac8dc formatting
SVN revision: 52714
2010-09-25 04:40:54 +00:00
Lucas De Marchi b5dfed45d8 Use eina_sched_prio_drop()
SVN revision: 52653
2010-09-23 20:40:35 +00:00
Carsten Haitzler ef71a85f2a fix error enum too
SVN revision: 52588
2010-09-22 13:25:17 +00:00
Carsten Haitzler fea985b760 fmting.
SVN revision: 52586
2010-09-22 12:02:35 +00:00
Carsten Haitzler 80e131a443 fmting
SVN revision: 52585
2010-09-22 11:57:19 +00:00
Carsten Haitzler c4d77fea71 docs++
SVN revision: 52584
2010-09-22 11:29:42 +00:00
Carsten Haitzler ea8175d746 fmormatting cleanups
SVN revision: 52583
2010-09-22 11:28:31 +00:00
Carsten Haitzler dddab37368 fmting
SVN revision: 52581
2010-09-22 11:14:25 +00:00
Carsten Haitzler 629916a4ee formatting
SVN revision: 52579
2010-09-22 11:04:32 +00:00
Carsten Haitzler c5977a45dd formatting.
SVN revision: 52578
2010-09-22 11:03:28 +00:00
Carsten Haitzler 2dce035395 warning--, formatting.
SVN revision: 52577
2010-09-22 11:02:19 +00:00
Carsten Haitzler fa813fb8f2 size_t -> int.
really - i prefer it and if we hit the 2gb limit of a signed int for
bytes added to a textblock... thats the day we will need evas 2 :)



SVN revision: 52576
2010-09-22 10:58:44 +00:00
Carsten Haitzler 21ec26bed3 move some simple #define constants to typedefs. api compatible tho.
SVN revision: 52575
2010-09-22 10:52:54 +00:00
Carsten Haitzler 08b5fe088a fmting
SVN revision: 52572
2010-09-22 09:37:18 +00:00
Carsten Haitzler af7910c47b formatting
SVN revision: 52571
2010-09-22 09:28:23 +00:00
Carsten Haitzler f5acc84e67 int -> bool
SVN revision: 52570
2010-09-22 09:19:31 +00:00
Carsten Haitzler 011b2ce822 brutally evil... internally.. but it works. map perspective correct
now in gl engine. hooray for that. one complaint less.



SVN revision: 52566
2010-09-22 06:52:28 +00:00
Tom Hacohen 2d3b0200af Evas textblock: merged changes.
SVN revision: 52544
2010-09-21 15:39:26 +00:00
Iván Briano 68f1a20306 Adding callback for box to be called when a child is added or removed.
Also sets the children_changed flag when changing children list.

    by Otavio Pontes <otavio@profusion.mobi>



SVN revision: 52541
2010-09-21 14:04:28 +00:00
Tom Hacohen ae51c0e16f Evas textblock: Fixed deleting the last visual format in a row of visual formats, for example in '<b>ab</b><tab>cd' the tab wouldn't have gotten erased correctly.
SVN revision: 52540
2010-09-21 13:05:30 +00:00
Lucas De Marchi 71cba7da35 Fix typos
"he->the" where appropriate



SVN revision: 52493
2010-09-20 17:09:13 +00:00
Tom Hacohen 5ba2cc9c6b Evas textblock: Removed the usuned type field from the textblock item.
SVN revision: 52489
2010-09-20 14:14:52 +00:00
Tom Hacohen b98670ab36 Evas textblock: Updated docs.
SVN revision: 52488
2010-09-20 13:04:37 +00:00
Lucas De Marchi 9af1273517 Remove unused field from Evas_Object
Previous commits removed the use of havemap_parent. So, remove the
field as well.

Fix some trailing whitespaces too.



SVN revision: 52486
2010-09-20 10:54:09 +00:00
Tom Hacohen 1f8553de01 Evas textblock: Fixed the mixed usage of a replacement char (e.g * on password textblocks) with formats.
SVN revision: 52485
2010-09-20 10:06:01 +00:00
Tom Hacohen e8c10dbce7 Evas textblock: Added evas_textblock_node_format_remove_pair to remove formats.
SVN revision: 52484
2010-09-20 09:44:48 +00:00
Carsten Haitzler 4b73f639d2 fix booboo
SVN revision: 52482
2010-09-20 01:32:05 +00:00
Gustavo Sverzut Barbieri 200fd80f4e warnings-- on 16bpp and 8bpp
SVN revision: 52472
2010-09-19 20:11:42 +00:00
Carsten Haitzler 1a72827555 warnings--
warnings = 0.



SVN revision: 52449
2010-09-19 02:43:08 +00:00
Carsten Haitzler c54bd4052c warning--
SVN revision: 52448
2010-09-19 02:33:19 +00:00
Carsten Haitzler ca722c0c6a fix clip in simple img obj case
SVN revision: 52446
2010-09-19 02:28:09 +00:00
Carsten Haitzler 2f08e231e5 warning--
SVN revision: 52445
2010-09-19 02:10:09 +00:00
Carsten Haitzler 4faa8c38ca warning--
SVN revision: 52444
2010-09-19 02:04:12 +00:00
Carsten Haitzler 1ca42eee39 warning--
SVN revision: 52443
2010-09-19 02:02:09 +00:00
Carsten Haitzler a8c72076d4 warnings--
SVN revision: 52442
2010-09-19 01:57:19 +00:00
Carsten Haitzler 9cb35948bc warning--
SVN revision: 52441
2010-09-19 01:46:13 +00:00
Carsten Haitzler 16c3803a71 warning--
SVN revision: 52440
2010-09-19 01:42:45 +00:00
Carsten Haitzler c3870d27c0 warning--
SVN revision: 52439
2010-09-19 01:41:46 +00:00
Carsten Haitzler 649509a9c2 warning--
SVN revision: 52438
2010-09-19 01:33:51 +00:00
Carsten Haitzler 857119a1c2 maybe actually fix things correctly eh? -> images load again.
SVN revision: 52435
2010-09-19 01:14:56 +00:00
Carsten Haitzler ccb4dbd91b fix gl stride
SVN revision: 52432
2010-09-19 00:28:58 +00:00
Carsten Haitzler f07a07855a warning--
SVN revision: 52431
2010-09-18 23:45:42 +00:00
Carsten Haitzler 5d15f41500 warning--
SVN revision: 52430
2010-09-18 23:39:30 +00:00
Vincent Torri 89038e3b0c free the main region (leak--)
SVN revision: 52429
2010-09-18 23:17:27 +00:00
Gustavo Sverzut Barbieri d89ebf341b cleanup: internal image information is now unsigned.
There is no meaning in negative values for image loading, marking as
dirty or size, so image internals (cache, entry) were changed to
unsigned, reducing possible errors, particularly with overflow.

engines were converted to the new way, but any 3rd party modules will
still work as they should be using values >= 0 only anyway.

please review.

new cases introduced by "comparison between signed and unsigned" were
fixed in the modules that used cache_entry or Image_Entry dimensions.



SVN revision: 52428
2010-09-18 23:16:25 +00:00
Gustavo Sverzut Barbieri 5dd0eeb7ab cleanup: fb uses unsigned to match linux/fb.h
this removes warnings and keep consistency between system and evas
value signs.



SVN revision: 52427
2010-09-18 23:11:01 +00:00
Gustavo Sverzut Barbieri 19f0eebd27 cleanup: simple clean of "comparison between signed and unsigned errors"
not much to see here, please review but these are simple changes.



SVN revision: 52426
2010-09-18 23:07:31 +00:00
Gustavo Sverzut Barbieri 2640984384 cleanup: evas_macros.h - less comparison between signed and unsigned errors
update macro to do fine with unsigned integers (avoids width and
height getting below 0) and force casts.



SVN revision: 52425
2010-09-18 23:06:22 +00:00
Gustavo Sverzut Barbieri e37c1c7a0a cleanup: fix some "unused" errors from -Wextra.
As we're heading for a release we better remove as much errors as
possible and as the first step I'm removing warnings due unused
parameters, variables and functions. These tend to pollute real errors
spotted by -Wall and clang/llvm.

This does not fixes all, just the clear that could be set to
__UNUSED__, particularly to do (and I'd like some help from the
authors):

 * src/lib/engines/common/evas_font_{draw,query}.c (tasn):
   intl_props is just used while doing BIDI, but also used in other
   #ifdef blocks :-/

 * evas_map_* (raster):
   huge amount of warnings, code is quite confusing and thus I'm not
   touching it. I have no idea whenever the commented blocks or extra
   parameters are intended to be used or no.

 * src/modules/engines/fbevas_fb_main.c (raster?):
   is fb_setvt() to be used? If not do you mind removing it?

 * src/modules/engines/gl_{common,x11} (raster):
   huge amount of warnings, code is quite nested and full of #ifdefs
   that does not help to give a clear picture of what's going on.

 * src/bin/evas_cserve_main.c (raster):
   I could have ignored most of the errors, but is the code correct? I
   mean, there is no unload of images being applied. If you confirm
   none of those warnings are harmful I can flag them as unused.

 * src/lib/engines/common_8 (dottedmag):
   lots of unused functions that were acquired from common_16, they
   are unused and if they will not, then they should be removed.



SVN revision: 52421
2010-09-18 19:17:41 +00:00
Gustavo Sverzut Barbieri a22dac6ea3 Add missing evas_common prefix, avoid symbol redefinition.
soft16 was written as a single engine, thus it was all static/global
and had no EAPI in its functions, but then it was moved into
"src/lib/common_16" and got that, but got no prefix! That could cause
clash with other libraries, so adding such prefix.

soft8 was a copy of 16, thus had the same problems.

the engines were all based on software_x11, thus they defined the same
methods to deal with Xlib, however if you link them all in the same
binary (--enable-MODULE=static), the symbol would be redefined. Rename
symbols according to their module.



SVN revision: 52420
2010-09-18 17:43:13 +00:00
Vincent Torri d128fb54a0 remove debug messages
SVN revision: 52419
2010-09-18 17:31:00 +00:00
Vincent Torri 9acfb01811 Fix shaped windows on Windows. It uses regions.
Advantages:
 * it is the simplest method to implement

Disadvantages:
 * it's slow
 * it does not take into account transparency
 * it does not work with the composite manager (Windows >= Vista)

Layered windows should be used (all the disadvantaged above are
fixed), but i've never succeeded in making them work.

SVN revision: 52416
2010-09-18 17:19:11 +00:00
Carsten Haitzler 6f4d152810 fix actually supporting clip for maps in gl.
SVN revision: 52415
2010-09-18 14:23:20 +00:00
Carsten Haitzler 8df657a51a be less agressive performance-wise but clear up some gl sync issues
that have been lurking.



SVN revision: 52414
2010-09-18 13:49:56 +00:00
Lucas De Marchi 4dcae856ea Fix function call after previous change
Forgot one function call.



SVN revision: 52408
2010-09-18 06:41:04 +00:00
Lucas De Marchi 4db4b59b02 Make _evas_event_havemap_adjust() recursive
Make this function recursive, so it can adjust the coords for all
parent objects. It starts with the grand-grand-grand-...-parent and goes
down until the same object.



SVN revision: 52407
2010-09-18 06:31:41 +00:00
Lucas De Marchi 1a0a9b68f6 Use also map of current object
Do not use only the map of the parent. Apply the obj's map first and
then go to the parent.

+  simple formatting



SVN revision: 52406
2010-09-18 06:31:12 +00:00
Lucas De Marchi a1a69cae0f Remove havemap_parent shortcut
SVN revision: 52405
2010-09-18 06:31:05 +00:00
Lucas De Marchi e478d25f34 Clean unneeded check
SVN revision: 52404
2010-09-18 06:30:59 +00:00
Lucas De Marchi 6f1e1a950e Don't set parmap for the other objects
We are iterating EINA_INLIST_REVERSE_FOREACH(list, obj) in a recursive
function. Don't mark the other objects as havemap_parent if the first
in the list has it.



SVN revision: 52403
2010-09-18 06:30:51 +00:00
Lucas De Marchi bcc9b853ed formatting
SVN revision: 52402
2010-09-18 06:30:45 +00:00
Lucas De Marchi fcd5f99652 clean a bit more
SVN revision: 52401
2010-09-18 06:30:37 +00:00
Lucas De Marchi 69ffdd1b93 Clean it a bit to be easier to understand
SVN revision: 52400
2010-09-18 06:30:30 +00:00
Lucas De Marchi a7fcb37a7f Revert r52345
This function is not needed at all, and as of now it's borken. Coming patches
will properly fix coords on events.



SVN revision: 52398
2010-09-18 06:29:47 +00:00
Lucas De Marchi 251a60ab09 Add function to check if point is inside an object
Add evas_object_inside_get() to check if a certain (x,y) point is inside
an evas_object. This is needed because there's no simple way to
determine it outside of evas when map transformations are used.

For instance, edje uses evas_object_geometry_get() and checks if point is
whithin the rectangle. This is wrong because the object might be
rotated, scaled. Below is a test program:

/**
 * Simple Evas test
 *
 * Compile with: gcc -O0 -g  -o evas_hello_world evas_hello_world.c $(pkg-config --cflags --libs eina evas ecore ecore-evas)
 */
 #include <Eina.h>
 #include <Evas.h>
 #include <Ecore_Evas.h>
 #include <Ecore.h>
 #include <stdio.h>

 #define WIDTH (320)
 #define HEIGHT (240)

Eina_Bool main_signal_exit(void *data, int ev_type, void *ev)
{
    ecore_main_loop_quit();
    return EINA_FALSE;
}

static void
_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
    Evas_Event_Mouse_Up *ev = event_info;
    Eina_Bool b;

    b = evas_object_inside_get(obj, ev->canvas.x, ev->canvas.y);
    fprintf(stderr, "mouse_up: x=%d, y=%d inside=%d\n", ev->canvas.x,
            ev->canvas.y, b);
}

static void
_cb_move(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
    Evas_Event_Mouse_Move *ev = event_info;
    const char *id = data;
    Eina_Bool b;

    b = evas_object_inside_get(obj, ev->cur.canvas.x, ev->cur.canvas.y);
    fprintf(stderr, "[%s] mouse_move: x=%d, y=%d inside=%d\n", id,
            ev->cur.canvas.x, ev->cur.canvas.y, b);
}

int main(void)
{
   Evas *evas;
   Ecore_Evas *window;
   Evas_Object *bg, *r1, *r2;
   Evas_Map *m;

   evas_init();
   ecore_init();
   ecore_evas_init();

   window = ecore_evas_new(NULL, 0, 0, WIDTH, HEIGHT, NULL);
   if (!evas)
     return -1;

   evas = ecore_evas_get(window);

   bg = evas_object_rectangle_add(evas);
   evas_object_color_set(bg, 255, 255, 255, 255); // white bg
   evas_object_move(bg, 0, 0);                    // at origin
   evas_object_resize(bg, WIDTH, HEIGHT);         // covers full evas
   evas_object_show(bg);

   r1 = evas_object_rectangle_add(evas);
   evas_object_color_set(r1, 255, 0, 0, 255); // 100% opaque red
   evas_object_move(r1, 50, 50);
   evas_object_resize(r1, 100, 100);

   m = evas_map_new(4);
   evas_map_util_points_populate_from_object(m, r1);
   evas_map_util_rotate(m, 45.0, 100, 100);
   evas_map_alpha_set(m, 0);
   evas_map_smooth_set(m, 1);

   evas_object_map_set(r1, m);
   evas_object_map_enable_set(r1, 1);
   evas_map_free(m);
   evas_object_show(r1);
   evas_object_event_callback_add(r1, EVAS_CALLBACK_MOUSE_UP, _cb, NULL);
   evas_object_event_callback_add(r1, EVAS_CALLBACK_MOUSE_MOVE, _cb_move, "r1");

   r2 = evas_object_rectangle_add(evas);
   evas_object_color_set(r2, 0, 255, 0, 255);
   evas_object_move(r2, 210, 150);
   evas_object_resize(r2, 50, 50);
   evas_object_show(r2);
   evas_object_event_callback_add(r2, EVAS_CALLBACK_MOUSE_MOVE, _cb_move, "r2");

   ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, main_signal_exit, evas);

   ecore_evas_show(window);
   ecore_main_loop_begin();

   ecore_evas_free(window);

   ecore_evas_shutdown();
   ecore_shutdown();
   evas_shutdown();

   return 0;
}




SVN revision: 52345
2010-09-16 13:59:46 +00:00
Tom Hacohen 12b55be8af Evas textblock: Added a lot of fixes to evas_textblock_cursor_geometry_get in the case where ctype = EVAS_TEXTBLOCK_CURSOR_BEFORE
SVN revision: 52341
2010-09-16 09:59:39 +00:00
Tom Hacohen 9fb94f209b Evas textblock: Fixed evas_textblock_range_text_get that didn't work on textblocks with no formats at all (not even newlines or tabs).
SVN revision: 52339
2010-09-16 07:12:23 +00:00
Lucas De Marchi 08055d63b9 trivial: spelling in documentation
Some misspellings found in doxy.



SVN revision: 52326
2010-09-15 20:40:51 +00:00
Iván Briano 20ea0eef4e Check there are callbacks before trying to copy them.
Patch by Otávio Pontes


SVN revision: 52323
2010-09-15 19:51:08 +00:00
Tom Hacohen 612b3eda81 Evas textblock: fix deleting the first tab in 'a<TAB><TAB>a' that caused weird behavior.
The solution is that we only delete invisible standalones now, not visible ones, this is correct intuitively and of course fixes the bug.

SVN revision: 52302
2010-09-15 14:07:09 +00:00
Tom Hacohen b59743febd Evas textblock: we should also take width of tabs into account when calculating line width.
SVN revision: 52297
2010-09-15 12:45:06 +00:00
Tom Hacohen 8b6083ec26 Evas textblock: Fix and simplify _find_layout_item_line_match which is an helper function used in many parts of textblock.
SVN revision: 52295
2010-09-15 10:24:07 +00:00
Tom Hacohen 108bdeeadd Evas font: removed old (already removed a long time ago) functions from evas_font.h.
SVN revision: 52293
2010-09-15 09:11:19 +00:00
Tom Hacohen 78deeca6ba Evas textblock: Fixed the bug with disappearing text with many tabs and text.
I removed a function that caused the issue and made no sense at all, honestly, it didn't make any sense.
I did a lot of testing trying to see if there are any new bugs after the fix, and nothing, so I guess my instincts were correct.
Please if you can, check out the removed function (_layout_walk_back_to_item_word_redo) and see if it makes any sense to you, if it does, please let me know.

SVN revision: 52243
2010-09-14 13:57:26 +00:00
Iván Briano 2bd045dd1f Pending patch from glima, who's on vacations.
Add two new canvas level callbacks: OBJECT_FOCUS_IN/OUT
As we already had callbacks for objects gaining or losing focus, then
two more for the Canvas, now we can have the entire Evas be notified when
any object changes its focused status. The object in question is passed
as the event_info for the callback.


SVN revision: 52196
2010-09-13 18:04:23 +00:00
Lucas De Marchi 9c091e1714 Assert cache->usage never becomes negative
Assert cache->usage never becomes negative as was occurring before the
fix in r52149.

Just in time, the fix in r52149 was made by Ulisses, not me.



SVN revision: 52190
2010-09-13 13:58:34 +00:00
Lucas De Marchi d32c0f99bd Fix accounting of memory usage in image cache
Memory usage was not accounted right because
cache->func.mem_size_get(ie) returns 0 when called after
cache->func.destructor(ie). Thus the total memory used, kept on
cache->usage, is never decremented in _evas_cache_image_remove_activ()

This implies that cache->usage will keep growing and eventually it will
overflow, becoming negative. So evas_cache_image_flush() will not do its
job because cache->limit (assumed to be positive) will not be less than
cache->usage anymore. So the total memory allocated will start to grow
and the limit won't be respected.

Strictly speaking, it's not a leak, since all the memory will be
eventually freed when evas shutdown is called, but the program might be
killed by over allocating memory. This is caught by valgrind with the
massif tool. The graphic below shows that in the end a huge memory amount
is allocated. This is the moment when cache->usage became negative.

MB
26.04^                                                                   #
|                                                                   #::::
|                                                                   #::::
|                                                                   #::::
|                                                                   #::::
|                                                                   #::::
|                                                                   #::::
|                                                                   #::::
|                                                                   #::::
|                                                                   #::::
|                                                                   #::::
|                                                                   #::::
|                                                                   #::::
|                                                                   #::::
|                                                                   #::::
|                                                                   #::::
|                                                                   #::::
|                                                                   #::::
| :::::::::::::::::@@:::::::::@:::@::::::@::::::::::::::::::::::::::#::::
| : ::: ::: ::: :::@ :: ::: : @:: @:: :::@: :: ::: : : :: :: : ::: :#::::
0 +----------------------------------------------------------------------->Gi
0                                                                   54.83

This patch is a one line fix, which swaps the calls to
_evas_cache_image_remove_activ() and cache->func.destructor() making
cache->limit to be respected.



SVN revision: 52149
2010-09-10 23:00:26 +00:00
Lucas De Marchi 19c1b1e899 Fix priority dropping
Lowering priority was wrong. Some bugs:

1) You don't lower the priority by setting the scheduler policy to some
   of the real-time ones (SCHED_RR or SCHER_FIFO). If you do so, you are
   actually increasing the priority of the workers and your main thread
   you be preempted and stalled until the workers complete their job.
   Fortunately this will only happen if your programming is running as
   root, as normal users (without CAP_SYS_NICE) are unable to set
   priority to real-time values.

2) setpriority() and getpriority() are not part of pthread and you can't
   use the id returned by pthread. Manpage explicitly says so on
   pthread_self(3):
   "The  thread ID returned by pthread_self() is not the same thing as the
       kernel thread ID returned by a call to gettid(2)."

   Since glibc does not have a gettid, here we are using
   syscall(SYS_gettid)

This patch was tested with the program below. Compile and run:
   $ gcc p_hello2.c -o p_hello2 -lpthread
   $ ./p_hello2 10

You'll see that the main thread remains with its priority and threads
created by the main thread change their own niceness.

 #include <errno.h>
 #include <pthread.h>
 #include <sched.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <sys/resource.h>
 #include <sys/syscall.h>
 #include <sys/time.h>
 #include <sys/types.h>

/* Lower priority of current thread.
 *
 * It's used by worker threads so they use up "bg cpu" as it was really intended
 * to work. If current thread is running with real-time priority, we decrease
 * our priority by 5. This is done in a portable way.  Otherwise we are
 * running with SCHED_OTHER policy and there's no portable way to set the nice
 * level on current thread. In Linux, it does work and it's the only one that is
 * implemented.
 */
static void
_ecore_thread_pri_drop(void)
{
   struct sched_param param;
   int pol, prio, ret;
   pid_t tid;
   pthread_t pthread_id;

   pthread_id = pthread_self();
   ret = pthread_getschedparam(pthread_id, &pol, &param);
   if (ret)
     {
        fprintf(stderr, "Unable to query sched parameters\n");
        return;
     }

   if (pol == SCHED_RR || pol == SCHED_FIFO)
     {
        prio = sched_get_priority_max(pol);
        param.sched_priority += 5;
        if (prio > 0 && param.sched_priority > prio)
           param.sched_priority = prio;

        pthread_setschedparam(pthread_id, pol, &param);
     }
 #ifdef __linux__
   else
     {
        tid = syscall(SYS_gettid);
        errno = 0;
        prio = getpriority(PRIO_PROCESS, tid);
        if (errno == 0)
          {
             prio += 5;
             if (prio > 19)
                prio = 19;

             setpriority(PRIO_PROCESS, tid, prio);
          }
     }
 #endif
}

/*
 * p_hello.c -- a hello program (in pthread)
 */
 #define MAX_THREAD 1000

typedef struct {
    int id;
} parm;

void *hello(void *arg)
{
    parm *p=(parm *)arg;
    pid_t tid;
    int prio;
    tid =  syscall(SYS_gettid);
    printf("[%d] Hello from node %d\n", tid, p->id);
    pthread_yield();

    printf("[%d] HELLO!\n", tid);

    _ecore_thread_pri_drop();

    prio = getpriority(PRIO_PROCESS, tid);
    printf("[%d] New nice value: %d\n", tid, prio);
    return (NULL);
}

int main(int argc, char* argv[]) {
    int n,i;
    pthread_t *threads;
    pthread_attr_t pthread_custom_attr;
    parm *p;

    pid_t tid;
    int prio;

    if (argc != 2)
    {
        printf ("Usage: %s n\n  where n is no. of threads\n",argv[0]);
        exit(1);
    }

    n=atoi(argv[1]);

    if ((n < 1) || (n > MAX_THREAD)) {
        printf ("The no of thread should between 1 and %d.\n",MAX_THREAD);
        exit(1);
    }

    threads = (pthread_t *)malloc(n * sizeof(*threads));
    pthread_attr_init(&pthread_custom_attr);

    p = (parm *)malloc(n * sizeof(parm));
    /* Start up thread */

    tid = syscall(SYS_gettid);
    for (i=0; i<n; i++) {
        prio = getpriority(PRIO_PROCESS, tid);
        printf("[%d] root thread nice value: %d\n", tid, prio);

        p[i].id=i;
        pthread_create(&threads[i], &pthread_custom_attr, hello, (void *)(p+i));
    }

    /* Synchronize the completion of each thread. */

    for (i=0; i<n; i++) {
        pthread_join(threads[i],NULL);
    }
    free(p);

    return 0;
}



SVN revision: 52040
2010-09-09 12:45:39 +00:00
Carsten Haitzler 9a4aa69e71 return NULL after if to avoid other lku
SVN revision: 52033
2010-09-09 07:27:56 +00:00
Carsten Haitzler 40e57dd2d7 that should have been an LKU
SVN revision: 52032
2010-09-09 07:23:55 +00:00
Carsten Haitzler 5f6add7b2f and some final fixes anc cleanups - tested.
SVN revision: 52031
2010-09-09 07:14:11 +00:00
Carsten Haitzler c4ee82f6a7 lots of cleanups... actually tested! :)
SVN revision: 52030
2010-09-09 07:08:10 +00:00
Carsten Haitzler 679d566fde actually revert that - not enough testing. need to work on it.
SVN revision: 52029
2010-09-09 06:36:01 +00:00
Carsten Haitzler 4975395633 major clean of the preload stuff. leaks. bugs. nastinessesssss...
SVN revision: 52028
2010-09-09 06:31:29 +00:00
Brett Nash c69628f5af Whitespace --;
SVN revision: 52024
2010-09-09 05:36:56 +00:00
Tom Hacohen 471d682228 Evas textblock: Fixed paragraph char last.
SVN revision: 51985
2010-09-08 10:22:38 +00:00
Tom Hacohen bcc518ed97 Evas textblock: Should not clean the props of the item.
SVN revision: 51984
2010-09-08 10:00:47 +00:00
Tom Hacohen b267a0a03a Evas textblock: Fixed a typo.
SVN revision: 51981
2010-09-08 07:54:00 +00:00
Tom Hacohen 4c716af06a Evas textblock: cursor_geometry_get now also returns the direction of the cursor: rtl/ltr/whatever.
Fixed documentation a bit.

SVN revision: 51979
2010-09-08 07:28:16 +00:00
Lucas De Marchi 85815e306c Fix common misspellings
Following misspellings were fixed:

accomodate->accommodate
achive->achieve
beacuse->because
caluclate->calculate
cant->can't
carefull->careful
convertion->conversion
dependancy->dependency
dependant->dependent
doesnt->doesn't
existant->existent
extention->extension
fucntion->function
impliment->implement
inital->initial
lenght->length
occured->occurred
occuring->occurring
onyl->only
positon->position
possibilty->possibility
postion->position
proccessing->processing
proccess->process
propogate->propagate
recieve->receive
sucessive->successive
teh->the
ther->there
throught->through
thsi->this
wasnt->wasn't
whcih->which
wheras->whereas




SVN revision: 51965
2010-09-08 03:51:24 +00:00
Carsten Haitzler 47fbbe6196 well dldrawarrays doesnthave a limit according to the gl spec - but
drivers may implement one. as such add a check. but check and fix
seems to fail for some rendering. wonder why?



SVN revision: 51923
2010-09-06 13:36:32 +00:00
Tom Hacohen b3982e535d Evas textblock: Update bidi props also when merging nodes and when deleting formats.
SVN revision: 51922
2010-09-06 12:19:17 +00:00
Tom Hacohen 2a073bc103 Evas bidi: Fixed docs.
SVN revision: 51900
2010-09-05 09:45:28 +00:00
Tom Hacohen 2d1d631b48 Evas textblock: Added evas_textblock_cursor_content_get.
SVN revision: 51898
2010-09-05 08:28:58 +00:00
Tom Hacohen cc250013be Evas textblock: Fixed documentation typos. Patch by Jihoon Kim.
SVN revision: 51896
2010-09-05 07:04:59 +00:00
Carsten Haitzler c67a9ac86a and fix gl engine to actually do map for yuv images! :) fix fix.
SVN revision: 51893
2010-09-05 02:58:30 +00:00
Christopher Michael d6da81ea66 Update email address across the board.
SVN revision: 51890
2010-09-04 18:32:59 +00:00
Carsten Haitzler 360fb6511a make priority of thread drop linux only - fallback.
SVN revision: 51886
2010-09-04 14:34:23 +00:00
Carsten Haitzler cc1e39498f back to RR - hope kernel allows us to set minimum realtime pri anyway.
SVN revision: 51877
2010-09-04 05:40:09 +00:00
Carsten Haitzler 69fa1e6386 fix async enabled evas on a single core system.
SVN revision: 51876
2010-09-04 04:12:46 +00:00
Carsten Haitzler e0860db059 dont call mouse out or in if already in or out in evas. causing
infinite loops in edje_viewer! bad!



SVN revision: 51875
2010-09-04 03:53:34 +00:00
Carsten Haitzler 4748c05e38 also rr->other
SVN revision: 51872
2010-09-04 00:54:42 +00:00
Carsten Haitzler c3f73fb210 sched other pls. :)
SVN revision: 51871
2010-09-04 00:52:24 +00:00