lucas [Mon, 20 Sep 2010 10:54:09 +0000 (10:54 +0000)]
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.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52486
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
tasn [Mon, 20 Sep 2010 10:06:01 +0000 (10:06 +0000)]
Evas textblock: Fixed the mixed usage of a replacement char (e.g * on password textblocks) with formats.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52485
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
tasn [Mon, 20 Sep 2010 09:44:48 +0000 (09:44 +0000)]
Evas textblock: Added evas_textblock_node_format_remove_pair to remove formats.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52484
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Mon, 20 Sep 2010 01:32:05 +0000 (01:32 +0000)]
fix booboo
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52482
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Sun, 19 Sep 2010 21:12:04 +0000 (21:12 +0000)]
update README.in with relevant information, fix typos and improve formatting.
* add information about modules "=static" suffix.
* fix lots of typos spotted by emacs "flyspell-mode".
* add more spacing and separator lines around sections.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52477
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Sun, 19 Sep 2010 20:32:14 +0000 (20:32 +0000)]
svn:ignore set on 8bpp engine.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52474
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Sun, 19 Sep 2010 20:11:42 +0000 (20:11 +0000)]
warnings-- on 16bpp and 8bpp
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52472
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Sun, 19 Sep 2010 02:43:08 +0000 (02:43 +0000)]
warnings--
warnings = 0.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52449
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Sun, 19 Sep 2010 02:33:19 +0000 (02:33 +0000)]
warning--
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52448
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Sun, 19 Sep 2010 02:28:09 +0000 (02:28 +0000)]
fix clip in simple img obj case
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52446
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Sun, 19 Sep 2010 02:10:09 +0000 (02:10 +0000)]
warning--
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52445
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Sun, 19 Sep 2010 02:04:12 +0000 (02:04 +0000)]
warning--
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52444
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Sun, 19 Sep 2010 02:02:09 +0000 (02:02 +0000)]
warning--
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52443
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Sun, 19 Sep 2010 01:57:19 +0000 (01:57 +0000)]
warnings--
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52442
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Sun, 19 Sep 2010 01:46:13 +0000 (01:46 +0000)]
warning--
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52441
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Sun, 19 Sep 2010 01:42:45 +0000 (01:42 +0000)]
warning--
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52440
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Sun, 19 Sep 2010 01:41:46 +0000 (01:41 +0000)]
warning--
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52439
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Sun, 19 Sep 2010 01:33:51 +0000 (01:33 +0000)]
warning--
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52438
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Sun, 19 Sep 2010 01:14:56 +0000 (01:14 +0000)]
maybe actually fix things correctly eh? -> images load again.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52435
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Sun, 19 Sep 2010 00:28:58 +0000 (00:28 +0000)]
fix gl stride
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52432
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Sat, 18 Sep 2010 23:45:42 +0000 (23:45 +0000)]
warning--
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52431
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Sat, 18 Sep 2010 23:39:30 +0000 (23:39 +0000)]
warning--
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52430
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Sat, 18 Sep 2010 23:17:27 +0000 (23:17 +0000)]
free the main region (leak--)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52429
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Sat, 18 Sep 2010 23:16:25 +0000 (23:16 +0000)]
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.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52428
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Sat, 18 Sep 2010 23:11:01 +0000 (23:11 +0000)]
cleanup: fb uses unsigned to match linux/fb.h
this removes warnings and keep consistency between system and evas
value signs.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52427
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Sat, 18 Sep 2010 23:07:31 +0000 (23:07 +0000)]
cleanup: simple clean of "comparison between signed and unsigned errors"
not much to see here, please review but these are simple changes.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52426
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Sat, 18 Sep 2010 23:06:22 +0000 (23:06 +0000)]
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.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52425
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Sat, 18 Sep 2010 19:17:41 +0000 (19:17 +0000)]
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.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52421
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Sat, 18 Sep 2010 17:43:13 +0000 (17:43 +0000)]
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.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52420
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Sat, 18 Sep 2010 17:31:00 +0000 (17:31 +0000)]
remove debug messages
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52419
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Sat, 18 Sep 2010 17:19:11 +0000 (17:19 +0000)]
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.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52416
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Sat, 18 Sep 2010 14:23:20 +0000 (14:23 +0000)]
fix actually supporting clip for maps in gl.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52415
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Sat, 18 Sep 2010 13:49:56 +0000 (13:49 +0000)]
be less agressive performance-wise but clear up some gl sync issues
that have been lurking.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52414
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
lucas [Sat, 18 Sep 2010 06:41:04 +0000 (06:41 +0000)]
Fix function call after previous change
Forgot one function call.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52408
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
lucas [Sat, 18 Sep 2010 06:31:41 +0000 (06:31 +0000)]
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.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52407
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
lucas [Sat, 18 Sep 2010 06:31:12 +0000 (06:31 +0000)]
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
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52406
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
lucas [Sat, 18 Sep 2010 06:31:05 +0000 (06:31 +0000)]
Remove havemap_parent shortcut
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52405
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
lucas [Sat, 18 Sep 2010 06:30:59 +0000 (06:30 +0000)]
Clean unneeded check
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52404
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
lucas [Sat, 18 Sep 2010 06:30:51 +0000 (06:30 +0000)]
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.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52403
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
lucas [Sat, 18 Sep 2010 06:30:45 +0000 (06:30 +0000)]
formatting
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52402
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
lucas [Sat, 18 Sep 2010 06:30:37 +0000 (06:30 +0000)]
clean a bit more
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52401
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
lucas [Sat, 18 Sep 2010 06:30:30 +0000 (06:30 +0000)]
Clean it a bit to be easier to understand
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52400
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
lucas [Sat, 18 Sep 2010 06:29:47 +0000 (06:29 +0000)]
Revert r52345
This function is not needed at all, and as of now it's borken. Coming patches
will properly fix coords on events.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52398
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
lucas [Thu, 16 Sep 2010 13:59:46 +0000 (13:59 +0000)]
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;
}
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52345
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
tasn [Thu, 16 Sep 2010 09:59:39 +0000 (09:59 +0000)]
Evas textblock: Added a lot of fixes to evas_textblock_cursor_geometry_get in the case where ctype = EVAS_TEXTBLOCK_CURSOR_BEFORE
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52341
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
tasn [Thu, 16 Sep 2010 07:12:23 +0000 (07:12 +0000)]
Evas textblock: Fixed evas_textblock_range_text_get that didn't work on textblocks with no formats at all (not even newlines or tabs).
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52339
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
lucas [Wed, 15 Sep 2010 20:40:51 +0000 (20:40 +0000)]
trivial: spelling in documentation
Some misspellings found in doxy.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52326
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
sachiel [Wed, 15 Sep 2010 19:51:08 +0000 (19:51 +0000)]
Check there are callbacks before trying to copy them.
Patch by Otávio Pontes
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52323
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Wed, 15 Sep 2010 17:20:37 +0000 (17:20 +0000)]
* evas: we don't need all the stuff from pthreads to do preload.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52311
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
tasn [Wed, 15 Sep 2010 14:07:09 +0000 (14:07 +0000)]
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.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52302
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
tasn [Wed, 15 Sep 2010 12:45:06 +0000 (12:45 +0000)]
Evas textblock: we should also take width of tabs into account when calculating line width.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52297
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
tasn [Wed, 15 Sep 2010 10:24:07 +0000 (10:24 +0000)]
Evas textblock: Fix and simplify _find_layout_item_line_match which is an helper function used in many parts of textblock.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52295
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
tasn [Wed, 15 Sep 2010 09:11:19 +0000 (09:11 +0000)]
Evas font: removed old (already removed a long time ago) functions from evas_font.h.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52293
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
tasn [Tue, 14 Sep 2010 13:57:26 +0000 (13:57 +0000)]
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.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52243
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
sachiel [Mon, 13 Sep 2010 18:04:23 +0000 (18:04 +0000)]
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.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52196
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
lucas [Mon, 13 Sep 2010 13:58:34 +0000 (13:58 +0000)]
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.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52190
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
lucas [Fri, 10 Sep 2010 23:00:26 +0000 (23:00 +0000)]
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.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52149
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
lucas [Thu, 9 Sep 2010 12:45:39 +0000 (12:45 +0000)]
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, ¶m);
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, ¶m);
}
#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;
}
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52040
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Thu, 9 Sep 2010 07:27:56 +0000 (07:27 +0000)]
return NULL after if to avoid other lku
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52033
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Thu, 9 Sep 2010 07:23:55 +0000 (07:23 +0000)]
that should have been an LKU
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52032
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Thu, 9 Sep 2010 07:14:11 +0000 (07:14 +0000)]
and some final fixes anc cleanups - tested.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52031
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Thu, 9 Sep 2010 07:08:10 +0000 (07:08 +0000)]
lots of cleanups... actually tested! :)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52030
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Thu, 9 Sep 2010 06:36:01 +0000 (06:36 +0000)]
actually revert that - not enough testing. need to work on it.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52029
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Thu, 9 Sep 2010 06:31:29 +0000 (06:31 +0000)]
major clean of the preload stuff. leaks. bugs. nastinessesssss...
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52028
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
nash [Thu, 9 Sep 2010 05:36:56 +0000 (05:36 +0000)]
Whitespace --;
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@52024
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
tasn [Wed, 8 Sep 2010 10:22:38 +0000 (10:22 +0000)]
Evas textblock: Fixed paragraph char last.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51985
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
tasn [Wed, 8 Sep 2010 10:00:47 +0000 (10:00 +0000)]
Evas textblock: Should not clean the props of the item.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51984
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
tasn [Wed, 8 Sep 2010 07:54:00 +0000 (07:54 +0000)]
Evas textblock: Fixed a typo.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51981
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
tasn [Wed, 8 Sep 2010 07:28:16 +0000 (07:28 +0000)]
Evas textblock: cursor_geometry_get now also returns the direction of the cursor: rtl/ltr/whatever.
Fixed documentation a bit.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51979
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
lucas [Wed, 8 Sep 2010 03:51:24 +0000 (03:51 +0000)]
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
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51965
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Tue, 7 Sep 2010 15:43:57 +0000 (15:43 +0000)]
svn:ignore
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51954
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Mon, 6 Sep 2010 13:36:32 +0000 (13:36 +0000)]
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?
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51923
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
tasn [Mon, 6 Sep 2010 12:19:17 +0000 (12:19 +0000)]
Evas textblock: Update bidi props also when merging nodes and when deleting formats.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51922
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
tasn [Sun, 5 Sep 2010 09:45:28 +0000 (09:45 +0000)]
Evas bidi: Fixed docs.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51900
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
tasn [Sun, 5 Sep 2010 08:28:58 +0000 (08:28 +0000)]
Evas textblock: Added evas_textblock_cursor_content_get.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51898
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
tasn [Sun, 5 Sep 2010 07:04:59 +0000 (07:04 +0000)]
Evas textblock: Fixed documentation typos. Patch by Jihoon Kim.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51896
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Sun, 5 Sep 2010 02:58:30 +0000 (02:58 +0000)]
and fix gl engine to actually do map for yuv images! :) fix fix.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51893
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
devilhorns [Sat, 4 Sep 2010 18:32:59 +0000 (18:32 +0000)]
Update email address across the board.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51890
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Sat, 4 Sep 2010 14:34:23 +0000 (14:34 +0000)]
make priority of thread drop linux only - fallback.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51886
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Sat, 4 Sep 2010 05:40:09 +0000 (05:40 +0000)]
back to RR - hope kernel allows us to set minimum realtime pri anyway.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51877
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Sat, 4 Sep 2010 04:12:46 +0000 (04:12 +0000)]
fix async enabled evas on a single core system.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51876
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Sat, 4 Sep 2010 03:53:34 +0000 (03:53 +0000)]
dont call mouse out or in if already in or out in evas. causing
infinite loops in edje_viewer! bad!
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51875
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Sat, 4 Sep 2010 00:54:42 +0000 (00:54 +0000)]
also rr->other
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51872
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Sat, 4 Sep 2010 00:52:24 +0000 (00:52 +0000)]
sched other pls. :)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51871
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Fri, 3 Sep 2010 10:07:20 +0000 (10:07 +0000)]
preload in bg. low pri th.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51859
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Fri, 3 Sep 2010 08:44:13 +0000 (08:44 +0000)]
fix raols bug he found map + del obj.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51857
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Fri, 3 Sep 2010 08:23:38 +0000 (08:23 +0000)]
grrrr. slowness bug. fix. now display bug is back.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51855
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Fri, 3 Sep 2010 00:06:56 +0000 (00:06 +0000)]
in order to fix some horridibubble things. i had to add 4 api's. ugh.
done. working. now... still 1 more bug. seems to be a changed flag bug
too in dlip 2 test in scrolling list after map anim finished. smaller
bug to deal with now. ugh. bug one bug to the other
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51849
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
tasn [Thu, 2 Sep 2010 13:53:14 +0000 (13:53 +0000)]
Evas textblock: Fixed char coord set to work better.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51842
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
tasn [Thu, 2 Sep 2010 12:01:23 +0000 (12:01 +0000)]
Evas textblock: width should remain the same no matter what's the position, removed that unwanted adjustment.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51838
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
tasn [Thu, 2 Sep 2010 11:57:52 +0000 (11:57 +0000)]
Evas textblock: updated docs.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51837
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
tasn [Thu, 2 Sep 2010 11:53:40 +0000 (11:53 +0000)]
Evas textblock: Fixed compilation without fribidi.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51836
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
tasn [Thu, 2 Sep 2010 11:49:00 +0000 (11:49 +0000)]
Evas textblock+font engine: Implemented evas_textblock_cursor_geometry_get.
Fixed evas_common_font_char_coords to work correctly with the NULL character in RTL text.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51834
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Thu, 2 Sep 2010 09:40:23 +0000 (09:40 +0000)]
fix more map+clip goop.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51830
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Thu, 2 Sep 2010 05:48:23 +0000 (05:48 +0000)]
evas_object_text*_get: return 0 in case of error
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51829
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Wed, 1 Sep 2010 22:51:00 +0000 (22:51 +0000)]
notes. still a bork.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51827
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Wed, 1 Sep 2010 22:45:30 +0000 (22:45 +0000)]
and fix up some related map+clip+smart render issues along with fixing
map boundary bugs as in trying to fix it i added some bugs.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51826
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Wed, 1 Sep 2010 21:38:34 +0000 (21:38 +0000)]
comment++
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51824
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Wed, 1 Sep 2010 21:37:10 +0000 (21:37 +0000)]
now that mostly fixes this map clip issue... ugh. took a while to come up
with an elegant solution. also it does add overhead to fix. i might be
able to improve the overhead.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51823
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
tasn [Wed, 1 Sep 2010 14:26:55 +0000 (14:26 +0000)]
Evas textblock: Fixed compilation without fribidi. <-- For real now. :P
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51809
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33