From: Enlightenment S. <no-...@en...> - 2008-10-31 06:18:28
|
Log: fix segv in pw mode Author: raster Date: 2008-10-30 23:18:18 -0700 (Thu, 30 Oct 2008) New Revision: 37351 Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-10-31 02:25:46 UTC (rev 37350) +++ trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-10-31 06:18:18 UTC (rev 37351) @@ -1783,7 +1783,7 @@ { int adv, inset, tw, th, new_line, empty_item; int wrap, twrap, ch, index, white_stripped; - char *str; + char *str, *tbase; Evas_Object_Textblock_Item *it; if ((repch) && (n->text)) @@ -1795,12 +1795,16 @@ len++; chlen = strlen(repch); str = alloca((len * chlen) + 1); + tbase = str; for (i = 0, ptr = str; i < len; ptr += chlen, i++) memcpy(ptr, repch, chlen); *ptr = 0; } else - str = n->text; + { + str = n->text; + tbase = str; + } new_line = 0; empty_item = 0; while (str) @@ -1823,7 +1827,7 @@ */ it = _layout_item_new(c, fmt, str); it->source_node = n; - it->source_pos = str - n->text; + it->source_pos = str - tbase; tw = th = 0; if (fmt->font.font) c->ENFN->font_string_size_get(c->ENDT, fmt->font.font, it->text, &tw, &th); |
From: Enlightenment S. <no-...@en...> - 2008-11-15 05:13:12
|
Log: fix some formatting/indenting and explicitly look at mouse_down as a counter. Author: raster Date: 2008-11-14 21:13:09 -0800 (Fri, 14 Nov 2008) New Revision: 37650 Modified: trunk/evas/src/lib/canvas/evas_events.c trunk/evas/src/lib/canvas/evas_object_main.c Modified: trunk/evas/src/lib/canvas/evas_events.c =================================================================== --- trunk/evas/src/lib/canvas/evas_events.c 2008-11-15 05:12:31 UTC (rev 37649) +++ trunk/evas/src/lib/canvas/evas_events.c 2008-11-15 05:13:09 UTC (rev 37650) @@ -377,11 +377,14 @@ } if (e->pointer.mouse_grabbed < 0) - fprintf(stderr, "BUG? e->pointer.mouse_grabbed (=%d) < 0!\n", - e->pointer.mouse_grabbed); + { + fprintf(stderr, "BUG? e->pointer.mouse_grabbed (=%d) < 0!\n", + e->pointer.mouse_grabbed); + } - if ((e->pointer.button == 0) && (e->pointer.mouse_grabbed)) + if ((e->pointer.button == 0) && (e->pointer.mouse_grabbed != 0)) { + printf("restore to 0 grabs (from %i)\n", e->pointer.mouse_grabbed); e->pointer.mouse_grabbed = 0; } _evas_unwalk(e); @@ -556,7 +559,7 @@ obj = outs->data; outs = eina_list_remove(outs, obj); - if ((!obj->mouse_grabbed) && (!e->delete_me)) + if ((obj->mouse_grabbed == 0) && (!e->delete_me)) { e->pointer.object.in = eina_list_remove(e->pointer.object.in, obj); { Modified: trunk/evas/src/lib/canvas/evas_object_main.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_main.c 2008-11-15 05:12:31 UTC (rev 37649) +++ trunk/evas/src/lib/canvas/evas_object_main.c 2008-11-15 05:13:09 UTC (rev 37650) @@ -1083,32 +1083,30 @@ // if (obj->layer->evas->pointer.mouse_grabbed >= obj->mouse_grabbed) obj->layer->evas->pointer.mouse_grabbed -= obj->mouse_grabbed; } - { - if ((obj->mouse_in) || (obj->mouse_grabbed > 0)) - { - obj->layer->evas->pointer.object.in = eina_list_remove(obj->layer->evas->pointer.object.in, obj); - } - obj->mouse_grabbed = 0; - if (obj->layer->evas->events_frozen > 0) - { - obj->mouse_in = 0; - return; - } - if (obj->mouse_in) - { - Evas_Event_Mouse_Out ev; - - obj->mouse_in = 0; - ev.buttons = obj->layer->evas->pointer.button; - ev.output.x = obj->layer->evas->pointer.x; - ev.output.y = obj->layer->evas->pointer.y; - ev.canvas.x = obj->layer->evas->pointer.x; - ev.canvas.y = obj->layer->evas->pointer.y; - ev.data = NULL; - ev.modifiers = &(obj->layer->evas->modifiers); - ev.locks = &(obj->layer->evas->locks); - evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev); - } + if ((obj->mouse_in) || (obj->mouse_grabbed > 0)) + { + obj->layer->evas->pointer.object.in = eina_list_remove(obj->layer->evas->pointer.object.in, obj); + } + obj->mouse_grabbed = 0; + if (obj->layer->evas->events_frozen > 0) + { + obj->mouse_in = 0; + return; + } + if (obj->mouse_in) + { + Evas_Event_Mouse_Out ev; + + obj->mouse_in = 0; + ev.buttons = obj->layer->evas->pointer.button; + ev.output.x = obj->layer->evas->pointer.x; + ev.output.y = obj->layer->evas->pointer.y; + ev.canvas.x = obj->layer->evas->pointer.x; + ev.canvas.y = obj->layer->evas->pointer.y; + ev.data = NULL; + ev.modifiers = &(obj->layer->evas->modifiers); + ev.locks = &(obj->layer->evas->locks); + evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev); } } } |
From: Enlightenment S. <no-...@en...> - 2008-11-15 13:57:42
|
Log: and only remove markup if we have a style... Author: raster Date: 2008-11-15 05:57:37 -0800 (Sat, 15 Nov 2008) New Revision: 37661 Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-11-15 13:51:02 UTC (rev 37660) +++ trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-11-15 13:57:37 UTC (rev 37661) @@ -2532,9 +2532,12 @@ if ((ts) && (ts->delete_me)) return; if (o->markup_text) { - free(o->markup_text); - o->markup_text = NULL; - evas_object_textblock_text_markup_get(obj); + if (o->style) + { + free(o->markup_text); + o->markup_text = NULL; + evas_object_textblock_text_markup_get(obj); + } } if (o->style) { |
From: Enlightenment S. <no-...@en...> - 2008-12-17 08:24:15
|
Log: engine in list-- Author: raster Date: 2008-12-17 00:24:09 -0800 (Wed, 17 Dec 2008) New Revision: 38177 Modified: trunk/evas/src/lib/canvas/evas_main.c Modified: trunk/evas/src/lib/canvas/evas_main.c =================================================================== --- trunk/evas/src/lib/canvas/evas_main.c 2008-12-17 08:18:13 UTC (rev 38176) +++ trunk/evas/src/lib/canvas/evas_main.c 2008-12-17 08:24:09 UTC (rev 38177) @@ -743,9 +743,6 @@ #ifdef BUILD_ENGINE_XRENDER_X11 methods = eina_list_append(methods, strdup("xrender_x11")); #endif -#ifdef BUILD_ENGINE_SOFTWARE_XCB - methods = eina_list_append(methods, strdup("software_xcb")); -#endif #ifdef BUILD_ENGINE_XRENDER_XCB methods = eina_list_append(methods, strdup("xrender_xcb")); #endif |
From: Enlightenment S. <no-...@en...> - 2009-02-15 02:53:29
|
Log: fix minor bug in fill mode. Author: raster Date: 2009-02-14 18:53:24 -0800 (Sat, 14 Feb 2009) New Revision: 39020 Modified: trunk/evas/src/lib/canvas/evas_object_image.c Modified: trunk/evas/src/lib/canvas/evas_object_image.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_image.c 2009-02-15 01:53:02 UTC (rev 39019) +++ trunk/evas/src/lib/canvas/evas_object_image.c 2009-02-15 02:53:24 UTC (rev 39020) @@ -2251,13 +2251,18 @@ inw = imw - bl - br; inh = imh - bt - bb; outx = ox + bl; outy = oy + bt; outw = iw - bl - br; outh = ih - bt - bb; - if (o->cur.border.fill == EVAS_BORDER_FILL_SOLID) - obj->layer->evas->engine.func->context_render_op_set(output, context, - EVAS_RENDER_COPY); - obj->layer->evas->engine.func->image_draw(output, context, surface, o->engine_data, inx, iny, inw, inh, outx, outy, outw, outh, o->cur.smooth_scale); - if (o->cur.border.fill == EVAS_BORDER_FILL_SOLID) - obj->layer->evas->engine.func->context_render_op_set(output, context, - obj->cur.render_op); + if ((o->cur.border.fill == EVAS_BORDER_FILL_SOLID) && + (obj->cur.cache.clip.a == 255) && + (obj->cur.render_op == EVAS_RENDER_BLEND)) + { + obj->layer->evas->engine.func->context_render_op_set(output, context, + EVAS_RENDER_COPY); + obj->layer->evas->engine.func->image_draw(output, context, surface, o->engine_data, inx, iny, inw, inh, outx, outy, outw, outh, o->cur.smooth_scale); + obj->layer->evas->engine.func->context_render_op_set(output, context, + obj->cur.render_op); + } + else + obj->layer->evas->engine.func->image_draw(output, context, surface, o->engine_data, inx, iny, inw, inh, outx, outy, outw, outh, o->cur.smooth_scale); } inx = imw - br; iny = bt; inw = br; inh = imh - bt - bb; |
From: Enlightenment S. <no-...@en...> - 2009-02-23 07:21:40
|
Log: update debug code. Author: raster Date: 2009-02-22 23:21:37 -0800 (Sun, 22 Feb 2009) New Revision: 39154 Modified: trunk/evas/src/lib/canvas/evas_object_text.c Modified: trunk/evas/src/lib/canvas/evas_object_text.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_text.c 2009-02-23 07:20:21 UTC (rev 39153) +++ trunk/evas/src/lib/canvas/evas_object_text.c 2009-02-23 07:21:37 UTC (rev 39154) @@ -1393,17 +1393,16 @@ ENFN->context_render_op_set(output, context, obj->cur.render_op); /* ENFN->context_color_set(output, - context, - 230, 160, 30, 100); + context, + 230, 160, 30, 100); ENFN->rectangle_draw(output, - context, - surface, - obj->cur.cache.geometry.x + x, - obj->cur.cache.geometry.y + y, - obj->cur.cache.geometry.w, - obj->cur.cache.geometry.h); + context, + surface, + obj->cur.geometry.x + x, + obj->cur.geometry.y + y, + obj->cur.geometry.w, + obj->cur.geometry.h); */ - #define COLOR_ONLY_SET(object, sub, col) \ ENFN->context_color_set(output, context, \ object->sub.col.r, \ @@ -1438,7 +1437,6 @@ (((int)object->sub.col.g) * (amul)) / 255, \ (((int)object->sub.col.b) * (amul)) / 255, \ (((int)object->sub.col.a) * (amul)) / 255); - #define DRAW_TEXT(ox, oy) \ if ((o->engine_data) && (o->cur.text)) \ |
From: Enlightenment S. <no-...@en...> - 2009-03-23 10:02:30
|
Log: leak--! Author: raster Date: 2009-03-23 03:02:26 -0700 (Mon, 23 Mar 2009) New Revision: 39645 Modified: trunk/evas/src/lib/canvas/evas_main.c Modified: trunk/evas/src/lib/canvas/evas_main.c =================================================================== --- trunk/evas/src/lib/canvas/evas_main.c 2009-03-23 09:36:11 UTC (rev 39644) +++ trunk/evas/src/lib/canvas/evas_main.c 2009-03-23 10:02:26 UTC (rev 39645) @@ -182,6 +182,7 @@ eina_array_flush(&e->pending_objects); eina_array_flush(&e->obscuring_objects); eina_array_flush(&e->temporary_objects); + eina_array_flush(&e->calculate_objects); e->magic = 0; free(e); |
From: Enlightenment S. <no-...@en...> - 2009-04-10 03:25:29
|
Log: raoul: patch to fix thml-escapes for textblock Author: raster Date: 2009-04-09 20:25:27 -0700 (Thu, 09 Apr 2009) New Revision: 39914 Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_textblock.c 2009-04-09 21:31:29 UTC (rev 39913) +++ trunk/evas/src/lib/canvas/evas_object_textblock.c 2009-04-10 03:25:27 UTC (rev 39914) @@ -585,38 +585,36 @@ "½\0" "\xc2\xbd\0" "¾\0" "\xc2\xbe\0" "¿\0" "\xc2\xbf\0" - "à\0" "\xc3\x80\0" - "á\0" "\xc3\x81\0" - "â\0" "\xc3\x82\0" - "ã\0" "\xc3\x83\0" - "ä\0" "\xc3\x84\0" - "å\0" "\xc3\x85\0" - "æ\0" "\xc3\x86\0" - "ç\0" "\xc3\x87\0" - "ç\0" "\xc3\x87\0" - "è\0" "\xc3\x88\0" - "é\0" "\xc3\x89\0" - "ê\0" "\xc3\x8a\0" - "ë\0" "\xc3\x8b\0" - "ì\0" "\xc3\x8c\0" - "í\0" "\xc3\x8d\0" - "î\0" "\xc3\x8e\0" - "ï\0" "\xc3\x8f\0" - "ð\0" "\xc3\x90\0" - "ñ\0" "\xc3\x91\0" - "ñ\0" "\xc3\x91\0" - "ò\0" "\xc3\x92\0" - "ó\0" "\xc3\x93\0" - "ô\0" "\xc3\x94\0" - "õ\0" "\xc3\x95\0" - "ö\0" "\xc3\x96\0" + "À\0" "\xc3\x80\0" + "Á\0" "\xc3\x81\0" + "Â\0" "\xc3\x82\0" + "Ã\0" "\xc3\x83\0" + "Ä\0" "\xc3\x84\0" + "Å\0" "\xc3\x85\0" + "&Aelig;\0" "\xc3\x86\0" + "Ç\0" "\xc3\x87\0" + "È\0" "\xc3\x88\0" + "É\0" "\xc3\x89\0" + "Ê\0" "\xc3\x8a\0" + "Ë\0" "\xc3\x8b\0" + "È\0" "\xc3\x8c\0" + "É\0" "\xc3\x8d\0" + "Î\0" "\xc3\x8e\0" + "Ï\0" "\xc3\x8f\0" + "&Eth;\0" "\xc3\x90\0" + "Ñ\0" "\xc3\x91\0" + "Ò\0" "\xc3\x92\0" + "Ó\0" "\xc3\x93\0" + "Ô\0" "\xc3\x94\0" + "Õ\0" "\xc3\x95\0" + "Ö\0" "\xc3\x96\0" "×\0" "\xc3\x97\0" - "ø\0" "\xc3\x98\0" - "ù\0" "\xc3\x99\0" - "ú\0" "\xc3\x9a\0" - "û\0" "\xc3\x9b\0" - "ý\0" "\xc3\x9d\0" - "þ\0" "\xc3\x9e\0" + "Ø\0" "\xc3\x98\0" + "Ù\0" "\xc3\x99\0" + "Ú\0" "\xc3\x9a\0" + "Û\0" "\xc3\x9b\0" + "Ý\0" "\xc3\x9d\0" + "&Thorn;\0" "\xc3\x9e\0" "ß\0" "\xc3\x9f\0" "à\0" "\xc3\xa0\0" "á\0" "\xc3\xa1\0" |
From: Enlightenment S. <no-...@en...> - 2009-04-21 06:27:01
|
Log: limit init and fini to.. once! Author: raster Date: 2009-04-20 23:26:52 -0700 (Mon, 20 Apr 2009) New Revision: 40261 Modified: trunk/evas/src/lib/canvas/evas_font_dir.c Modified: trunk/evas/src/lib/canvas/evas_font_dir.c =================================================================== --- trunk/evas/src/lib/canvas/evas_font_dir.c 2009-04-21 06:16:19 UTC (rev 40260) +++ trunk/evas/src/lib/canvas/evas_font_dir.c 2009-04-21 06:26:52 UTC (rev 40261) @@ -45,11 +45,16 @@ static void object_text_font_cache_dir_del(char *dir, Evas_Font_Dir *fd); static int evas_object_text_font_string_parse(char *buffer, char dest[14][256]); +#ifdef HAVE_FONTCONFIG +static int fc_init = 0; +#endif + void evas_font_dir_cache_free(void) { #ifdef HAVE_FONTCONFIG - FcFini(); + fc_init--; + if (fc_init == 0) FcFini(); #endif if (!font_dirs) return; @@ -167,8 +172,12 @@ if (done) return; done = 1; #ifdef HAVE_FONTCONFIG - FcInit(); - FcConfigEnableHome(1); + fc_init++; + if (fc_init == 1) + { + FcInit(); + FcConfigEnableHome(1); + } #endif } |
From: Enlightenment S. <no-...@en...> - 2009-05-06 12:34:59
|
Log: fix char-wrap min size calc! Author: raster Date: 2009-05-06 05:34:54 -0700 (Wed, 06 May 2009) New Revision: 40522 Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_textblock.c 2009-05-06 12:00:19 UTC (rev 40521) +++ trunk/evas/src/lib/canvas/evas_object_textblock.c 2009-05-06 12:34:54 UTC (rev 40522) @@ -1852,6 +1852,7 @@ c->marginl - c->marginr))) { wrap = _layout_text_cutoff_get(c, fmt, it); + if (wrap == 0) wrap = 1; if (wrap > 0) { if (fmt->wrap_word) |
From: Enlightenment S. <no-...@en...> - 2009-05-10 22:42:20
|
Log: dont dirty on loadopt change - cache handles that Author: raster Date: 2009-05-10 15:42:09 -0700 (Sun, 10 May 2009) New Revision: 40583 Modified: trunk/evas/src/lib/canvas/evas_object_image.c Modified: trunk/evas/src/lib/canvas/evas_object_image.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_image.c 2009-05-10 12:21:00 UTC (rev 40582) +++ trunk/evas/src/lib/canvas/evas_object_image.c 2009-05-10 22:42:09 UTC (rev 40583) @@ -63,7 +63,7 @@ }; /* private methods for image objects */ -static void evas_object_image_unload(Evas_Object *obj); +static void evas_object_image_unload(Evas_Object *obj, Evas_Bool dirty); static void evas_object_image_load(Evas_Object *obj); static Evas_Coord evas_object_image_figure_x_fill(Evas_Object *obj, Evas_Coord start, Evas_Coord size, Evas_Coord *size_ret); static Evas_Coord evas_object_image_figure_y_fill(Evas_Object *obj, Evas_Coord start, Evas_Coord size, Evas_Coord *size_ret); @@ -1321,7 +1321,7 @@ (o->pixels_checked_out > 0)) return; if (o->engine_data) o->engine_data = obj->layer->evas->engine.func->image_dirty_region(obj->layer->evas->engine.data.output, o->engine_data, 0, 0, o->cur.image.w, o->cur.image.h); - evas_object_image_unload(obj); + evas_object_image_unload(obj, 1); evas_object_image_load(obj); o->changed = 1; evas_object_change(obj); @@ -1592,7 +1592,7 @@ o->load_opts.dpi = dpi; if (o->cur.file) { - evas_object_image_unload(obj); + evas_object_image_unload(obj, 0); evas_object_image_load(obj); o->changed = 1; evas_object_change(obj); @@ -1643,7 +1643,7 @@ o->load_opts.h = h; if (o->cur.file) { - evas_object_image_unload(obj); + evas_object_image_unload(obj, 0); evas_object_image_load(obj); o->changed = 1; evas_object_change(obj); @@ -1688,7 +1688,7 @@ o->load_opts.scale_down_by = scale_down; if (o->cur.file) { - evas_object_image_unload(obj); + evas_object_image_unload(obj, 0); evas_object_image_load(obj); o->changed = 1; evas_object_change(obj); @@ -1886,7 +1886,7 @@ o = (Evas_Object_Image *)(obj->object_data); if (o->magic == MAGIC_OBJ_IMAGE) { - evas_object_image_unload(obj); + evas_object_image_unload(obj, 1); } } } @@ -1951,7 +1951,7 @@ /* all nice and private */ static void -evas_object_image_unload(Evas_Object *obj) +evas_object_image_unload(Evas_Object *obj, Evas_Bool dirty) { Evas_Object_Image *o; @@ -1959,12 +1959,15 @@ if ((!o->cur.file) || (o->pixels_checked_out > 0)) return; + if (dirty) + { + if (o->engine_data) + o->engine_data = obj->layer->evas->engine.func->image_dirty_region(obj->layer->evas->engine.data.output, + o->engine_data, + 0, 0, + o->cur.image.w, o->cur.image.h); + } if (o->engine_data) - o->engine_data = obj->layer->evas->engine.func->image_dirty_region(obj->layer->evas->engine.data.output, - o->engine_data, - 0, 0, - o->cur.image.w, o->cur.image.h); - if (o->engine_data) obj->layer->evas->engine.func->image_free(obj->layer->evas->engine.data.output, o->engine_data); o->engine_data = NULL; |
From: Enlightenment S. <no-...@en...> - 2009-05-15 11:49:11
|
Log: make reload work properly... Author: raster Date: 2009-05-15 04:48:20 -0700 (Fri, 15 May 2009) New Revision: 40670 Modified: trunk/evas/src/lib/canvas/evas_object_image.c Modified: trunk/evas/src/lib/canvas/evas_object_image.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_image.c 2009-05-15 11:47:39 UTC (rev 40669) +++ trunk/evas/src/lib/canvas/evas_object_image.c 2009-05-15 11:48:20 UTC (rev 40670) @@ -1323,6 +1323,8 @@ o->engine_data = obj->layer->evas->engine.func->image_dirty_region(obj->layer->evas->engine.data.output, o->engine_data, 0, 0, o->cur.image.w, o->cur.image.h); evas_object_image_unload(obj, 1); evas_object_image_load(obj); + o->prev.file = NULL; + o->prev.key = NULL; o->changed = 1; evas_object_change(obj); } |
From: Enlightenment S. <no-...@en...> - 2009-05-31 21:26:44
|
Log: fix corer case with utf8 Author: raster Date: 2009-05-31 14:26:36 -0700 (Sun, 31 May 2009) New Revision: 40867 Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_textblock.c 2009-05-31 16:26:30 UTC (rev 40866) +++ trunk/evas/src/lib/canvas/evas_object_textblock.c 2009-05-31 21:26:36 UTC (rev 40867) @@ -1858,7 +1858,8 @@ c->marginl - c->marginr))) { wrap = _layout_text_cutoff_get(c, fmt, it); - if (wrap == 0) wrap = 1; + if (wrap == 0) + evas_common_font_utf8_get_next((unsigned char *)str, &wrap); if (wrap > 0) { if (fmt->wrap_word) @@ -1897,11 +1898,14 @@ if (it->text) free(it->text); _format_free(c->obj, it->format); free(it); - it = (Evas_Object_Textblock_Item *)(EINA_INLIST_GET(c->ln->items))->last; - _layout_strip_trailing_whitespace(c, fmt, it); - twrap = _layout_word_end(str, wrap); - ch = evas_common_font_utf8_get_next((unsigned char *)str, &twrap); - str = str + twrap; + if (c->ln->items) + { + it = (Evas_Object_Textblock_Item *)(EINA_INLIST_GET(c->ln->items))->last; + _layout_strip_trailing_whitespace(c, fmt, it); + twrap = _layout_word_end(str, wrap); + ch = evas_common_font_utf8_get_next((unsigned char *)str, &twrap); + str = str + twrap; + } } } } |
From: Enlightenment S. <no-...@en...> - 2009-06-03 14:16:58
|
Log: fix precise-in Author: raster Date: 2009-06-03 07:16:55 -0700 (Wed, 03 Jun 2009) New Revision: 40878 Modified: trunk/evas/src/lib/canvas/evas_object_image.c Modified: trunk/evas/src/lib/canvas/evas_object_image.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_image.c 2009-06-03 13:51:32 UTC (rev 40877) +++ trunk/evas/src/lib/canvas/evas_object_image.c 2009-06-03 14:16:55 UTC (rev 40878) @@ -2675,22 +2675,104 @@ { Evas_Object_Image *o; DATA32 *data; - int w, h, stride; + int w, h, stride, iw, ih; int a; o = (Evas_Object_Image *)(obj->object_data); x -= obj->cur.cache.clip.x; y -= obj->cur.cache.clip.y; - w = o->cur.image.w; - h = o->cur.image.h; + w = obj->cur.geometry.w; + h = obj->cur.geometry.h; + iw = o->cur.image.w; + ih = o->cur.image.h; - if ((x > w) || (y > h)) - return 0; + if ((x < 0) || (y < 0) || (x >= w) || (y >= h)) return 0; + if (!o->cur.has_alpha) return 1; - if (!o->cur.has_alpha) - return 1; + w = o->cur.fill.w; + h = o->cur.fill.h; + x -= o->cur.fill.x; + y -= o->cur.fill.y; + x %= w; + y %= h; + + if (x < 0) x += w; + if (y < 0) y += h; + + if (o->cur.border.fill != EVAS_BORDER_FILL_DEFAULT) + { + if ((x > o->cur.border.l) && (x < (w - o->cur.border.r)) && + (y > o->cur.border.t) && (y < (h - o->cur.border.b))) + { + if (o->cur.border.fill == EVAS_BORDER_FILL_SOLID) return 1; + return 0; + } + } + if (x < o->cur.border.l) + { + if (y < o->cur.border.t) + { + // nothing. x & y stay as-is + } + else if (y > (h - o->cur.border.b)) + { + y = ih - (h - y); + } + else if ((o->cur.border.t + o->cur.border.b) < ih) + { + y = ((y - o->cur.border.t) * ih) / (ih - o->cur.border.t - o->cur.border.b); + } + else + return 1; + } + else if (x > (w - o->cur.border.r)) + { + x = iw - (w - x); + if (y < o->cur.border.t) + { + // nothing. x & y stay as-is + } + else if (y > (h - o->cur.border.b)) + { + y = ih - (h - y); + } + else if ((o->cur.border.t + o->cur.border.b) < ih) + { + y = ((y - o->cur.border.t) * ih) / (ih - o->cur.border.t - o->cur.border.b); + } + else + return 1; + } + else + { + if ((o->cur.border.l + o->cur.border.r) < iw) + { + x = ((x - o->cur.border.l) * iw) / (iw - o->cur.border.l - o->cur.border.r); + } + else + x = o->cur.border.l; + if (y < o->cur.border.t) + { + // nothing. x & y stay as-is + } + else if (y > (h - o->cur.border.b)) + { + y = ih - (h - y); + } + else if ((o->cur.border.t + o->cur.border.b) < ih) + { + y = ((y - o->cur.border.t) * ih) / (ih - o->cur.border.t - o->cur.border.b); + } + else + return 1; + } + if (x < 0) x = 0; + if (y < 0) y = 0; + if (x >= iw) x = iw - 1; + if (y >= ih) y = ih - 1; + stride = o->cur.image.stride; o->engine_data = obj->layer->evas->engine.func->image_data_get(obj->layer->evas->engine.data.output, |
From: Enlightenment S. <no-...@en...> - 2009-08-19 09:56:58
|
Log: oh suncc - shut up! Author: raster Date: 2009-08-19 02:56:46 -0700 (Wed, 19 Aug 2009) New Revision: 41873 Modified: trunk/evas/src/lib/canvas/evas_object_text.c Modified: trunk/evas/src/lib/canvas/evas_object_text.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_text.c 2009-08-19 09:07:06 UTC (rev 41872) +++ trunk/evas/src/lib/canvas/evas_object_text.c 2009-08-19 09:56:46 UTC (rev 41873) @@ -1179,7 +1179,7 @@ return; MAGIC_CHECK_END(); - return evas_font_dir_available_list_free(available); + evas_font_dir_available_list_free(available); } /** |
From: Enlightenment S. <no-...@en...> - 2009-09-04 03:53:30
|
Log: 1. make smart callback calling faster with == instead of strcmp 2. add linesize/line relsize for setting line sizes in textblock Author: raster Date: 2009-09-03 20:53:18 -0700 (Thu, 03 Sep 2009) New Revision: 42231 Modified: trunk/evas/src/lib/canvas/evas_object_smart.c trunk/evas/src/lib/canvas/evas_object_textblock.c Modified: trunk/evas/src/lib/canvas/evas_object_smart.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_smart.c 2009-09-04 03:52:05 UTC (rev 42230) +++ trunk/evas/src/lib/canvas/evas_object_smart.c 2009-09-04 03:53:18 UTC (rev 42231) @@ -426,7 +426,8 @@ Evas_Object_Smart *o; Eina_List *l; Evas_Smart_Callback *cb; - + const char *strshare; + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); return; MAGIC_CHECK_END(); @@ -437,16 +438,18 @@ if (!event) return; if (obj->delete_me) return; o->walking_list++; + strshare = eina_stringshare_add(event); EINA_LIST_FOREACH(o->callbacks, l, cb) { if (!cb->delete_me) { - if (!strcmp(cb->event, event)) + if (cb->event == strshare) cb->func(cb->func_data, obj, event_info); } if (obj->delete_me) break; } + eina_stringshare_del(strshare); o->walking_list--; evas_object_smart_callbacks_clear(obj); } Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_textblock.c 2009-09-04 03:52:05 UTC (rev 42230) +++ trunk/evas/src/lib/canvas/evas_object_textblock.c 2009-09-04 03:53:18 UTC (rev 42231) @@ -93,6 +93,8 @@ int l, r; } margin; int tabstops; + int linesize; + double linerelsize; unsigned char style; unsigned char wrap_word : 1; unsigned char wrap_char : 1; @@ -904,6 +906,8 @@ static const char *backingstr; static const char *stylestr; static const char *tabstopsstr; +static const char *linesizestr; +static const char *linerelsizestr; static void _format_command_init(void) @@ -931,6 +935,8 @@ backingstr = eina_stringshare_add("backing"); stylestr = eina_stringshare_add("style"); tabstopsstr = eina_stringshare_add("tabstops"); + linesizestr = eina_stringshare_add("linesize"); + linerelsizestr = eina_stringshare_add("linerelsize"); } static void @@ -959,6 +965,8 @@ eina_stringshare_del(backingstr); eina_stringshare_del(stylestr); eina_stringshare_del(tabstopsstr); + eina_stringshare_del(linesizestr); + eina_stringshare_del(linerelsizestr); } static void @@ -1219,6 +1227,26 @@ fmt->tabstops = atoi(tmp_param); if (fmt->tabstops < 1) fmt->tabstops = 1; } + else if (cmd == linesizestr) + { + fmt->linesize = atoi(tmp_param); + fmt->linerelsize = 0.0; + } + else if (cmd == linerelsizestr) + { + if (strchr(tmp_param, '%')) + { + char *ts, *p; + + ts = alloca(strlen(tmp_param) + 1); + strcpy(ts, tmp_param); + p = strchr(ts, '%'); + *p = 0; + fmt->linerelsize = ((double)atoi(ts)) / 100.0; + fmt->linesize = 0; + if (fmt->linerelsize < 0.0) fmt->linerelsize = 0.0; + } + } if (new_font) { @@ -1405,6 +1433,19 @@ { ascent = c->ENFN->font_max_ascent_get(c->ENDT, fmt->font.font); descent = c->ENFN->font_max_descent_get(c->ENDT, fmt->font.font); + if (fmt->linesize > 0) + { + if ((ascent + descent) < fmt->linesize) + { + ascent = ((fmt->linesize * ascent) / (ascent + descent)); + descent = fmt->linesize - ascent; + } + } + else if (fmt->linerelsize > 0.0) + { + descent = ((ascent + descent) * fmt->linerelsize) - (ascent * fmt->linerelsize); + ascent = ascent * fmt->linerelsize; + } if (c->maxascent < ascent) c->maxascent = ascent; if (c->maxdescent < descent) c->maxdescent = descent; } @@ -1441,6 +1482,8 @@ fmt->valign = -1.0; fmt->style = EVAS_TEXT_STYLE_PLAIN; fmt->tabstops = 32; + fmt->linesize = 0; + fmt->linerelsize = 0.0; } return fmt; } @@ -5213,22 +5256,19 @@ (it->format->color.backing.b != b) || (it->format->color.backing.a != a)) { - if ((it->format->backing) && (!pback)) + if ((it->format->backing) && (!pback) && (!(EINA_INLIST_GET(it))->next)) + { + r = it->format->color.backing.r; + g = it->format->color.backing.g; + b = it->format->color.backing.b; + a = it->format->color.backing.a; + pback = 1; + backx = it->x; + } + if (!it->format->backing) x2 = it->x; + else x2 = it->x + it->w; + if ((pback) && (x2 > backx)) { - backx = it->x; - r = it->format->color.backing.r; - g = it->format->color.backing.g; - b = it->format->color.backing.b; - a = it->format->color.backing.a; - } - x2 = it->x + it->w; - if (!it->format->backing) - { - x2 = it->x; - pback = 0; - } - if (x2 > backx) - { ENFN->context_color_set(output, context, (obj->cur.cache.clip.r * r) / 255, @@ -5245,7 +5285,7 @@ x2 - backx, ln->h); } - if (it->format->backing) pback = 1; + pback = it->format->backing; backx = it->x; r = it->format->color.backing.r; g = it->format->color.backing.g; |
From: Enlightenment S. <no-...@en...> - 2009-10-08 14:28:39
|
Log: add external api call to call smart calc calls on al smarts on a canvas Author: raster Date: 2009-10-08 07:28:21 -0700 (Thu, 08 Oct 2009) New Revision: 42960 Modified: trunk/evas/src/lib/canvas/evas_object_smart.c Modified: trunk/evas/src/lib/canvas/evas_object_smart.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_smart.c 2009-10-08 09:31:15 UTC (rev 42959) +++ trunk/evas/src/lib/canvas/evas_object_smart.c 2009-10-08 14:28:21 UTC (rev 42960) @@ -544,7 +544,6 @@ * Call user provided calculate() and unset need_calculate. * * @param obj the smart object - * @return if flag is set or not. * * @ingroup Evas_Smart_Object_Group */ @@ -568,6 +567,23 @@ } /** + * Call user provided calculate() and unset need_calculate on all objects. + * + * @param e The canvas to calculate all objects in + * + * @ingroup Evas_Smart_Object_Group + */ +EAPI void +evas_smart_objects_calculate(Evas *e) +{ + MAGIC_CHECK(e, Evas, MAGIC_EVAS); + return RENDER_METHOD_INVALID; + MAGIC_CHECK_END(); + + evas_call_smarts_calculate(e); +} + +/** * Call calculate() on all smart objects that need_recalculate. * * @internal |
From: Enlightenment S. <no-...@en...> - 2009-10-09 04:31:28
|
Log: dont retunr if invalid Author: raster Date: 2009-10-08 21:31:13 -0700 (Thu, 08 Oct 2009) New Revision: 42976 Modified: trunk/evas/src/lib/canvas/evas_object_smart.c Modified: trunk/evas/src/lib/canvas/evas_object_smart.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_smart.c 2009-10-08 21:58:32 UTC (rev 42975) +++ trunk/evas/src/lib/canvas/evas_object_smart.c 2009-10-09 04:31:13 UTC (rev 42976) @@ -577,9 +577,8 @@ evas_smart_objects_calculate(Evas *e) { MAGIC_CHECK(e, Evas, MAGIC_EVAS); - return RENDER_METHOD_INVALID; + return; MAGIC_CHECK_END(); - evas_call_smarts_calculate(e); } |
From: Enlightenment S. <no-...@en...> - 2009-10-11 06:57:39
|
Log: keep locks for less - ie not arorund a loop calling callbacks. Author: raster Date: 2009-10-10 23:57:23 -0700 (Sat, 10 Oct 2009) New Revision: 43014 Modified: trunk/evas/src/lib/canvas/evas_async_events.c Modified: trunk/evas/src/lib/canvas/evas_async_events.c =================================================================== --- trunk/evas/src/lib/canvas/evas_async_events.c 2009-10-11 06:21:48 UTC (rev 43013) +++ trunk/evas/src/lib/canvas/evas_async_events.c 2009-10-11 06:57:23 UTC (rev 43014) @@ -149,6 +149,9 @@ int i; int check; int count = 0; + int myqueue_num = 0; + int myqueue_alloc = 0; + Evas_Event_Async *myqueue = NULL; if (_fd_read == -1) return 0; @@ -161,18 +164,24 @@ if (queue) { - for (i = 0; i < queue_num; i++) + myqueue_num = queue_num; + myqueue_alloc = queue_alloc; + myqueue = queue; + queue_num = 0; + queue_alloc = 0; + queue = NULL; + pthread_mutex_unlock(&_mutex); + + for (i = 0; i < myqueue_num; i++) { - ev = &(queue[i]); + ev = &(myqueue[i]); if (ev->func) ev->func((void *)ev->target, ev->type, ev->event_info); count++; } - free(queue); - queue = NULL; - queue_num = 0; - queue_alloc = 0; + free(myqueue); } - pthread_mutex_unlock(&_mutex); + else + pthread_mutex_unlock(&_mutex); if (check < 0) switch (errno) @@ -229,6 +238,7 @@ { queue_alloc -= 32; queue_num--; + pthread_mutex_unlock(&_mutex); return 0; } queue = q2; |
From: Enlightenment S. <no-...@en...> - 2009-10-23 06:48:33
|
Log: fix statements Author: raster Date: 2009-10-22 23:48:22 -0700 (Thu, 22 Oct 2009) New Revision: 43224 Modified: trunk/evas/src/lib/canvas/evas_stats.c Modified: trunk/evas/src/lib/canvas/evas_stats.c =================================================================== --- trunk/evas/src/lib/canvas/evas_stats.c 2009-10-23 00:56:41 UTC (rev 43223) +++ trunk/evas/src/lib/canvas/evas_stats.c 2009-10-23 06:48:22 UTC (rev 43224) @@ -29,11 +29,11 @@ if (!evas_cserve_raw_stats_get(&st)) return 0; if (!stats) return 1; stats->saved_memory = st.saved_memory; - stats->wasted_memory - st.wasted_memory; - stats->saved_memory_peak - st.saved_memory_peak; - stats->wasted_memory_peak - st.wasted_memory_peak; - stats->saved_time_image_header_load - st.saved_time_image_header_load; - stats->saved_time_image_data_load - st.saved_time_image_data_load; + stats->wasted_memory = st.wasted_memory; + stats->saved_memory_peak = st.saved_memory_peak; + stats->wasted_memory_peak = st.wasted_memory_peak; + stats->saved_time_image_header_load = st.saved_time_image_header_load; + stats->saved_time_image_data_load = st.saved_time_image_data_load; // may expand this in future return 1; #else |
From: Enlightenment S. <no-...@en...> - 2009-11-01 09:03:13
|
Log: i shoudl use join macro Author: raster Date: 2009-11-01 01:03:01 -0800 (Sun, 01 Nov 2009) New Revision: 43385 Modified: trunk/evas/src/lib/canvas/evas_object_image.c trunk/evas/src/lib/canvas/evas_render.c Modified: trunk/evas/src/lib/canvas/evas_object_image.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_image.c 2009-11-01 01:32:23 UTC (rev 43384) +++ trunk/evas/src/lib/canvas/evas_object_image.c 2009-11-01 09:03:01 UTC (rev 43385) @@ -2346,9 +2346,7 @@ pt->z = (p->z) << FP; pt->u = p->u * FP1; pt->v = p->v * FP1; - pt->col = - (((DATA32)p->a) << 24) | (((DATA32)p->r) << 16) | - (((DATA32)p->g) << 8) | (((DATA32)p->b)); + pt->col = ARGB_JOIN(p->a, p->r, p->g, p->b); } obj->layer->evas->engine.func->image_map4_draw (output, context, surface, o->engine_data, pts, Modified: trunk/evas/src/lib/canvas/evas_render.c =================================================================== --- trunk/evas/src/lib/canvas/evas_render.c 2009-11-01 01:32:23 UTC (rev 43384) +++ trunk/evas/src/lib/canvas/evas_render.c 2009-11-01 09:03:01 UTC (rev 43385) @@ -401,9 +401,7 @@ pt->z = (p->z) << FP; pt->u = p->u * FP1; pt->v = p->v * FP1; - pt->col = - (((DATA32)p->a) << 24) | (((DATA32)p->r) << 16) | - (((DATA32)p->g) << 8) | (((DATA32)p->b)); + pt->col = ARGB_JOIN(p->a, p->r, p->g, p->b); } if (obj->cur.map->surface) |
From: Enlightenment S. <no-...@en...> - 2009-11-02 15:44:04
|
Log: document map util calls Author: raster Date: 2009-11-02 07:43:51 -0800 (Mon, 02 Nov 2009) New Revision: 43423 Modified: trunk/evas/src/lib/canvas/evas_map.c Modified: trunk/evas/src/lib/canvas/evas_map.c =================================================================== --- trunk/evas/src/lib/canvas/evas_map.c 2009-11-02 15:17:59 UTC (rev 43422) +++ trunk/evas/src/lib/canvas/evas_map.c 2009-11-02 15:43:51 UTC (rev 43423) @@ -679,9 +679,14 @@ } /** - * XXX + * Rotate the map around 3 axes in 3D * - * xxx + * This will rotate not just around the "Z" axis as in evas_map_util_rotate() + * (which is a convenience call for those only wanting 2D). This will rotate + * around the X, Y and Z axes. The Z axis points "into" the screen with low + * values at the screen and higher values further away. The X axis runs from + * left to right on the screen and the Y axis from top to bottom. Like with + * evas_map_util_rotate(0 you provide a center point to rotate around (in 3D). * * @param m map to change. * @param dx amount of degrees from 0.0 to 360.0 to rotate arount X axis. @@ -690,9 +695,6 @@ * @param cx rotation's center horizontal positon. * @param cy rotation's center vertical positon. * @param cz rotation's center vertical positon. - * - * @see evas_map_point_coord_set() - * @see evas_map_util_zoom() */ EAPI void evas_map_util_3d_rotate(Evas_Map *m, double dx, double dy, double dz, @@ -746,14 +748,26 @@ } /** - * XXX + * Perform lighting calculations on the given Map * - * xxx + * This is used to apply lighting calculations (from a single light source) + * to a given map. The R, G and B values of each vertex will be modified to + * reflect the lighting based on the lixth point coordinates, the light + * color and the ambient color, and at what angle the map is facing the + * light source. A surface should have its points be declared in a + * clockwise fashion if the face is "facing" towards you (as opposed to + * away from you) as faces have a "logical" side for lighting. * * @param m map to change. * @param lx X coordinate in space of light point * @param ly Y coordinate in space of light point * @param lz Z coordinate in space of light point + * @param lr light red value (0 - 255) + * @param lg light green value (0 - 255) + * @param lb light blue value (0 - 255) + * @param lr ambient color red value (0 - 255) + * @param lg ambient color green value (0 - 255) + * @param lb ambient color blue value (0 - 255) */ EAPI void evas_map_util_3d_lighting(Evas_Map *m, @@ -829,11 +843,26 @@ } /** - * XXX + * Apply a perspective transform to the map * - * xxx + * This applies a given perspective (3D) to the map coordinates. X, Y and Z + * values are used. The px and py points specify the "infinite distance" point + * in the 3D conversion (where all lines converge to like when artists draw + * 3D by hand). The @p z0 value specifis the z value at which there is a 1:1 + * mapping between spatial coorinates and screen coordinates. Any points + * on this z value will not have their X and Y values modified in the transform. + * Those further away (Z value higher) will shrink into the distance, and + * those less than this value will expand and become bigger. The @p foc value + * determines the "focal length" of the camera. This is in reality the distance + * between the camera lens plane itself (at or closer than this rendering + * results are undefined) and the "z0" z value. This allows for some "depth" + * control and @p foc must be greater than 0. * * @param m map to change. + * @param px The pespective distance X coordinate + * @param py The pespective distance Y coordinate + * @param z0 The "0" z plane value + * @param foc The focal distance */ EAPI void evas_map_util_3d_perspective(Evas_Map *m, @@ -870,9 +899,12 @@ } /** - * XXX + * Get the clockwise state of a map * - * xxx + * This determines if the output points (X and Y. Z is not used) are + * clockwise or anti-clockwise. This can be used for "back-face culling". This + * is where you hide objects that "face away" from you. In this case objects + * that are not clockwise. * * @param m map to query. * @return 1 if clockwise, 0 otherwise |
From: Enlightenment S. <no-...@en...> - 2009-11-04 09:26:08
|
Log: fix mul! out of premul range! Author: raster Date: 2009-11-04 01:25:52 -0800 (Wed, 04 Nov 2009) New Revision: 43446 Modified: trunk/evas/src/lib/canvas/evas_map.c Modified: trunk/evas/src/lib/canvas/evas_map.c =================================================================== --- trunk/evas/src/lib/canvas/evas_map.c 2009-11-04 02:35:43 UTC (rev 43445) +++ trunk/evas/src/lib/canvas/evas_map.c 2009-11-04 09:25:52 UTC (rev 43446) @@ -836,6 +836,9 @@ mr = ar + ((lr - ar) * br); mg = ag + ((lg - ag) * br); mb = ab + ((lb - ab) * br); + mr = (mr * m->points[i].a) / 255; + mg = (mg * m->points[i].a) / 255; + mb = (mb * m->points[i].a) / 255; m->points[i].r = (m->points[i].r * mr) / 255; m->points[i].g = (m->points[i].g * mg) / 255; m->points[i].b = (m->points[i].b * mb) / 255; |
From: Enlightenment S. <no-...@en...> - 2009-11-06 08:45:02
|
Log: fix smart map redraw errors. Author: raster Date: 2009-11-06 00:44:49 -0800 (Fri, 06 Nov 2009) New Revision: 43483 Modified: trunk/evas/src/lib/canvas/evas_main.c trunk/evas/src/lib/canvas/evas_object_gradient.c trunk/evas/src/lib/canvas/evas_object_gradient2_linear.c trunk/evas/src/lib/canvas/evas_object_gradient2_radial.c trunk/evas/src/lib/canvas/evas_object_line.c trunk/evas/src/lib/canvas/evas_object_polygon.c trunk/evas/src/lib/canvas/evas_object_rectangle.c trunk/evas/src/lib/canvas/evas_object_smart.c trunk/evas/src/lib/canvas/evas_object_text.c trunk/evas/src/lib/canvas/evas_object_textblock.c trunk/evas/src/lib/canvas/evas_render.c Modified: trunk/evas/src/lib/canvas/evas_main.c =================================================================== --- trunk/evas/src/lib/canvas/evas_main.c 2009-11-06 08:14:50 UTC (rev 43482) +++ trunk/evas/src/lib/canvas/evas_main.c 2009-11-06 08:44:49 UTC (rev 43483) @@ -126,15 +126,15 @@ e->hinting = EVAS_FONT_HINTING_BYTECODE; e->name_hash = eina_hash_string_superfast_new(NULL); - eina_array_step_set(&e->delete_objects, 16); - eina_array_step_set(&e->active_objects, 16); - eina_array_step_set(&e->restack_objects, 16); - eina_array_step_set(&e->render_objects, 16); - eina_array_step_set(&e->pending_objects, 16); - eina_array_step_set(&e->obscuring_objects, 16); - eina_array_step_set(&e->temporary_objects, 16); - eina_array_step_set(&e->calculate_objects, 16); - eina_array_step_set(&e->clip_changes, 16); + eina_array_step_set(&e->delete_objects, 256); + eina_array_step_set(&e->active_objects, 256); + eina_array_step_set(&e->restack_objects, 256); + eina_array_step_set(&e->render_objects, 256); + eina_array_step_set(&e->pending_objects, 256); + eina_array_step_set(&e->obscuring_objects, 256); + eina_array_step_set(&e->temporary_objects, 256); + eina_array_step_set(&e->calculate_objects, 256); + eina_array_step_set(&e->clip_changes, 256); return e; } Modified: trunk/evas/src/lib/canvas/evas_object_gradient.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_gradient.c 2009-11-06 08:14:50 UTC (rev 43482) +++ trunk/evas/src/lib/canvas/evas_object_gradient.c 2009-11-06 08:44:49 UTC (rev 43483) @@ -1051,6 +1051,11 @@ evas_object_render_pre_visible_change(&obj->layer->evas->clip_changes, obj, is_v, was_v); goto done; } + if (obj->cur.map != obj->prev.map) + { + evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj); + goto done; + } /* its not visible - we accounted for it appearing or not so just abort */ if (!is_v) goto done; /* clipper changed this is in addition to anything else for obj */ Modified: trunk/evas/src/lib/canvas/evas_object_gradient2_linear.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_gradient2_linear.c 2009-11-06 08:14:50 UTC (rev 43482) +++ trunk/evas/src/lib/canvas/evas_object_gradient2_linear.c 2009-11-06 08:44:49 UTC (rev 43483) @@ -352,6 +352,11 @@ evas_object_render_pre_visible_change(&obj->layer->evas->clip_changes, obj, is_v, was_v); goto done; } + if (obj->cur.map != obj->prev.map) + { + evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj); + goto done; + } /* its not visible - we accounted for it appearing or not so just abort */ if (!is_v) goto done; /* clipper changed this is in addition to anything else for obj */ Modified: trunk/evas/src/lib/canvas/evas_object_gradient2_radial.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_gradient2_radial.c 2009-11-06 08:14:50 UTC (rev 43482) +++ trunk/evas/src/lib/canvas/evas_object_gradient2_radial.c 2009-11-06 08:44:49 UTC (rev 43483) @@ -349,6 +349,11 @@ evas_object_render_pre_visible_change(&obj->layer->evas->clip_changes, obj, is_v, was_v); goto done; } + if (obj->cur.map != obj->prev.map) + { + evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj); + goto done; + } /* its not visible - we accounted for it appearing or not so just abort */ if (!is_v) goto done; /* clipper changed this is in addition to anything else for obj */ Modified: trunk/evas/src/lib/canvas/evas_object_line.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_line.c 2009-11-06 08:14:50 UTC (rev 43482) +++ trunk/evas/src/lib/canvas/evas_object_line.c 2009-11-06 08:44:49 UTC (rev 43483) @@ -343,6 +343,11 @@ evas_object_render_pre_visible_change(&obj->layer->evas->clip_changes, obj, is_v, was_v); goto done; } + if (obj->cur.map != obj->prev.map) + { + evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj); + goto done; + } /* it's not visible - we accounted for it appearing or not so just abort */ if (!is_v) goto done; /* clipper changed this is in addition to anything else for obj */ Modified: trunk/evas/src/lib/canvas/evas_object_polygon.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_polygon.c 2009-11-06 08:14:50 UTC (rev 43482) +++ trunk/evas/src/lib/canvas/evas_object_polygon.c 2009-11-06 08:44:49 UTC (rev 43483) @@ -358,6 +358,11 @@ evas_object_render_pre_visible_change(&obj->layer->evas->clip_changes, obj, is_v, was_v); goto done; } + if (obj->cur.map != obj->prev.map) + { + evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj); + goto done; + } /* it's not visible - we accounted for it appearing or not so just abort */ if (!is_v) goto done; /* clipper changed this is in addition to anything else for obj */ Modified: trunk/evas/src/lib/canvas/evas_object_rectangle.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_rectangle.c 2009-11-06 08:14:50 UTC (rev 43482) +++ trunk/evas/src/lib/canvas/evas_object_rectangle.c 2009-11-06 08:44:49 UTC (rev 43483) @@ -207,6 +207,11 @@ evas_object_render_pre_visible_change(&obj->layer->evas->clip_changes, obj, is_v, was_v); goto done; } + if (obj->cur.map != obj->prev.map) + { + evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj); + goto done; + } /* it's not visible - we accounted for it appearing or not so just abort */ if (!is_v) goto done; /* clipper changed this is in addition to anything else for obj */ Modified: trunk/evas/src/lib/canvas/evas_object_smart.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_smart.c 2009-11-06 08:14:50 UTC (rev 43482) +++ trunk/evas/src/lib/canvas/evas_object_smart.c 2009-11-06 08:44:49 UTC (rev 43483) @@ -819,6 +819,12 @@ evas_object_smart_render_pre(Evas_Object *obj) { if (obj->pre_render_done) return; + if (obj->cur.map != obj->prev.map) + { + evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj); + goto done; + } + done: obj->pre_render_done = 1; } Modified: trunk/evas/src/lib/canvas/evas_object_text.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_text.c 2009-11-06 08:14:50 UTC (rev 43482) +++ trunk/evas/src/lib/canvas/evas_object_text.c 2009-11-06 08:44:49 UTC (rev 43483) @@ -1637,6 +1637,11 @@ evas_object_render_pre_visible_change(&obj->layer->evas->clip_changes, obj, is_v, was_v); goto done; } + if (obj->cur.map != obj->prev.map) + { + evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj); + goto done; + } /* its not visible - we accounted for it appearing or not so just abort */ if (!is_v) goto done; /* clipper changed this is in addition to anything else for obj */ Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_textblock.c 2009-11-06 08:14:50 UTC (rev 43482) +++ trunk/evas/src/lib/canvas/evas_object_textblock.c 2009-11-06 08:44:49 UTC (rev 43483) @@ -5630,6 +5630,11 @@ evas_object_render_pre_visible_change(&obj->layer->evas->clip_changes, obj, is_v, was_v); goto done; } + if (obj->cur.map != obj->prev.map) + { + evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj); + goto done; + } /* it's not visible - we accounted for it appearing or not so just abort */ if (!is_v) goto done; /* clipper changed this is in addition to anything else for obj */ Modified: trunk/evas/src/lib/canvas/evas_render.c =================================================================== --- trunk/evas/src/lib/canvas/evas_render.c 2009-11-06 08:14:50 UTC (rev 43482) +++ trunk/evas/src/lib/canvas/evas_render.c 2009-11-06 08:44:49 UTC (rev 43483) @@ -2,7 +2,7 @@ #include "evas_private.h" static Eina_List * -evas_render_updates_internal(Evas *e, Evas_Object *smart, unsigned char make_updates, unsigned char do_draw); +evas_render_updates_internal(Evas *e, unsigned char make_updates, unsigned char do_draw); /** * Add a damage rectangle. @@ -169,7 +169,9 @@ obj->is_active = is_active; if ((is_active) || (obj->delete_me != 0)) - eina_array_push(active_objects, obj); + { + eina_array_push(active_objects, obj); + } if (restack) { if (!obj->changed) @@ -511,7 +513,6 @@ static Eina_List * evas_render_updates_internal(Evas *e, - Evas_Object *smart, // is this a good idea? unsigned char make_updates, unsigned char do_draw) { @@ -530,11 +531,6 @@ MAGIC_CHECK_END(); if (!e->changed) return NULL; - if (smart) - { - // FIXME: if smart, only consider child objects - } - evas_call_smarts_calculate(e); /* Check if the modified object mean recalculating every thing */ @@ -806,6 +802,12 @@ obj->restack = 0; obj->changed = 0; } + else if (obj->cur.map != obj->prev.map) + { + obj->func->render_post(obj); + obj->restack = 0; + obj->changed = 0; + } /* moved to other pre-process phase 1 if (obj->delete_me == 2) { @@ -886,7 +888,7 @@ MAGIC_CHECK_END(); if (!e->changed) return NULL; - return evas_render_updates_internal(e, NULL, 1, 1); + return evas_render_updates_internal(e, 1, 1); } /** @@ -905,7 +907,7 @@ MAGIC_CHECK_END(); if (!e->changed) return; - evas_render_updates_internal(e, NULL, 0, 1); + evas_render_updates_internal(e, 0, 1); } /** @@ -929,7 +931,7 @@ MAGIC_CHECK_END(); // if (!e->changed) return; - evas_render_updates_internal(e, NULL, 0, 0); + evas_render_updates_internal(e, 0, 0); } /** |
From: Enlightenment S. <no-...@en...> - 2009-11-06 10:27:18
|
Log: return somethnig Author: raster Date: 2009-11-06 02:26:54 -0800 (Fri, 06 Nov 2009) New Revision: 43485 Modified: trunk/evas/src/lib/canvas/evas_render.c Modified: trunk/evas/src/lib/canvas/evas_render.c =================================================================== --- trunk/evas/src/lib/canvas/evas_render.c 2009-11-06 10:19:05 UTC (rev 43484) +++ trunk/evas/src/lib/canvas/evas_render.c 2009-11-06 10:26:54 UTC (rev 43485) @@ -128,7 +128,7 @@ (obj2->changed)) { obj->changed = 1; - return; + return 1; } else if (obj2->smart.smart) { @@ -199,7 +199,7 @@ obj->render_pre = 1; } } - return; + return clean_them; } /* handle normal rendering. this object knows how to handle maps */ |