doc with @since in Edje.h, please On Mon, Jun 4, 2012 at 4:57 AM, Enlightenment SVN <no-re...@enlightenment.org> wrote: > Log: > edje: morning speed of edje. Theme can now be a little bit lighter and faster. > > NOTE: VIRTUAL part are almost like rectangle except they don't create any > object > on the canvas. This part can't be visible, nor have any color, nor be used > as a > clip, nor receive any event. > > > Author: cedric > Date: 2012-06-03 19:57:15 -0700 (Sun, 03 Jun 2012) > New Revision: 71674 > Trac: http://trac.enlightenment.org/e/changeset/71674 > > Modified: > trunk/edje/ChangeLog trunk/edje/NEWS trunk/edje/src/bin/edje_cc_handlers.c > trunk/edje/src/lib/Edje.h trunk/edje/src/lib/edje_cache.c > trunk/edje/src/lib/edje_calc.c trunk/edje/src/lib/edje_data.c > trunk/edje/src/lib/edje_load.c trunk/edje/src/lib/edje_private.h > > Modified: trunk/edje/ChangeLog > =================================================================== > --- trunk/edje/ChangeLog 2012-06-04 01:39:10 UTC (rev 71673) > +++ trunk/edje/ChangeLog 2012-06-04 02:57:15 UTC (rev 71674) > @@ -467,7 +467,11 @@ > > * Use Eina_File instead of fopen when possible in edje_cc. > > -2012-05-21 Shilpa Onkar Singh > +2012-05-21 Shilpa Onkar Singh > > * Fix patch for edje draggable jump issue when external event > area is used for the dragable. > + > +2012-06-04 Cedric Bail > + > + * Add VIRTUAL part to reduce the load on the canvas (lighter and > faster theme). > > Modified: trunk/edje/NEWS > =================================================================== > --- trunk/edje/NEWS 2012-06-04 01:39:10 UTC (rev 71673) > +++ trunk/edje/NEWS 2012-06-04 02:57:15 UTC (rev 71674) > @@ -7,6 +7,8 @@ > * Add edje_watch to monitore change on edje source. > * Emit ['edje,change,file', 'edje'] when the file change on disk. > * edje_player will automatically reload the file when it change on disk. > + * Add VIRTUAL part. This part are not putting anything into the canvas. > So lighter and faster to > + process (Use it to replace RECT part that are never visible and never > catch any event). > > Improvements: > * Allocate once and reuse Evas_Map. > > Modified: trunk/edje/src/bin/edje_cc_handlers.c > =================================================================== > --- trunk/edje/src/bin/edje_cc_handlers.c 2012-06-04 01:39:10 UTC (rev > 71673) > +++ trunk/edje/src/bin/edje_cc_handlers.c 2012-06-04 02:57:15 UTC (rev > 71674) > @@ -875,6 +875,7 @@ > > switch (type) > { > + case EDJE_PART_TYPE_VIRTUAL: > case EDJE_PART_TYPE_RECTANGLE: > case EDJE_PART_TYPE_SWALLOW: > case EDJE_PART_TYPE_GROUP: > @@ -3023,6 +3024,7 @@ > @li TABLE > @li EXTERNAL > @li PROXY > + @li VIRTUAL > @endproperty > */ > static void > @@ -3044,6 +3046,7 @@ > "TABLE", EDJE_PART_TYPE_TABLE, > "EXTERNAL", EDJE_PART_TYPE_EXTERNAL, > "PROXY", EDJE_PART_TYPE_PROXY, > + "VIRTUAL", EDJE_PART_TYPE_VIRTUAL, > NULL); > > /* handle type change of inherited part */ > @@ -4379,6 +4382,7 @@ > ed->color_class = STRDUP(ed->color_class); > switch (ep->type) > { > + case EDJE_PART_TYPE_VIRTUAL: > case EDJE_PART_TYPE_RECTANGLE: > case EDJE_PART_TYPE_SWALLOW: > case EDJE_PART_TYPE_GROUP: > @@ -4611,6 +4615,14 @@ > { > check_arg_count(1); > > + if (current_part->type == EDJE_PART_TYPE_VIRTUAL) > + { > + ERR("%s: Error. parse error %s:%i. " > + "VIRTUAL part can't have a visibility defined", > + progname, file_in, line - 1); > + exit(-1); > + } > + > current_desc->visible = parse_bool(0); > } > > @@ -4843,6 +4855,14 @@ > { > check_arg_count(1); > > + if (current_part->type == EDJE_PART_TYPE_VIRTUAL) > + { > + ERR("%s: Error. parse error %s:%i. " > + "VIRTUAL part can't have a color defined", > + progname, file_in, line - 1); > + exit(-1); > + } > + > current_desc->color_class = parse_str(0); > } > > @@ -4861,6 +4881,14 @@ > { > check_arg_count(4); > > + if (current_part->type == EDJE_PART_TYPE_VIRTUAL) > + { > + ERR("%s: Error. parse error %s:%i. " > + "VIRTUAL part can't have a color defined", > + progname, file_in, line - 1); > + exit(-1); > + } > + > current_desc->color.r = parse_int_range(0, 0, 255); > current_desc->color.g = parse_int_range(1, 0, 255); > current_desc->color.b = parse_int_range(2, 0, 255); > @@ -4882,6 +4910,14 @@ > { > check_arg_count(4); > > + if (current_part->type == EDJE_PART_TYPE_VIRTUAL) > + { > + ERR("%s: Error. parse error %s:%i. " > + "VIRTUAL part can't have a color defined", > + progname, file_in, line - 1); > + exit(-1); > + } > + > current_desc->color2.r = parse_int_range(0, 0, 255); > current_desc->color2.g = parse_int_range(1, 0, 255); > current_desc->color2.b = parse_int_range(2, 0, 255); > > Modified: trunk/edje/src/lib/Edje.h > =================================================================== > --- trunk/edje/src/lib/Edje.h 2012-06-04 01:39:10 UTC (rev 71673) > +++ trunk/edje/src/lib/Edje.h 2012-06-04 02:57:15 UTC (rev 71674) > @@ -382,7 +382,8 @@ > EDJE_PART_TYPE_TABLE = 9, > EDJE_PART_TYPE_EXTERNAL = 10, > EDJE_PART_TYPE_PROXY = 11, > - EDJE_PART_TYPE_LAST = 12 > + EDJE_PART_TYPE_VIRTUAL = 12, > + EDJE_PART_TYPE_LAST = 13 > } Edje_Part_Type; > > typedef enum _Edje_Text_Effect > > Modified: trunk/edje/src/lib/edje_cache.c > =================================================================== > --- trunk/edje/src/lib/edje_cache.c 2012-06-04 01:39:10 UTC (rev 71673) > +++ trunk/edje/src/lib/edje_cache.c 2012-06-04 02:57:15 UTC (rev 71674) > @@ -63,6 +63,7 @@ > INIT_EMP_BOTH(BOX, Edje_Part_Description_Box, ce); > INIT_EMP_BOTH(TABLE, Edje_Part_Description_Table, ce); > INIT_EMP_BOTH(EXTERNAL, Edje_Part_Description_External, ce); > + INIT_EMP_BOTH(VIRTUAL, Edje_Part_Description_Common, ce); > INIT_EMP(part, Edje_Part, ce); > > snprintf(buf, sizeof(buf), "edje/collections/%i", id); > > Modified: trunk/edje/src/lib/edje_calc.c > =================================================================== > --- trunk/edje/src/lib/edje_calc.c 2012-06-04 01:39:10 UTC (rev 71673) > +++ trunk/edje/src/lib/edje_calc.c 2012-06-04 02:57:15 UTC (rev 71674) > @@ -232,6 +232,12 @@ > ce->count.GROUP++; > memsize = sizeof(Edje_Part_Description_Common); > break; > + case EDJE_PART_TYPE_VIRTUAL: > + desc_rtl = eina_mempool_malloc(ce->mp_rtl.VIRTUAL, > + sizeof (Edje_Part_Description_Common)); > + ce->count.VIRTUAL++; > + memsize = sizeof(Edje_Part_Description_Common); > + break; > EDIT_ALLOC_POOL_RTL(TEXT, Text, text); > EDIT_ALLOC_POOL_RTL(TEXTBLOCK, Text, text); > EDIT_ALLOC_POOL_RTL(IMAGE, Image, image); > @@ -241,7 +247,7 @@ > EDIT_ALLOC_POOL_RTL(EXTERNAL, External, external_params); > } > > - if(desc_rtl) > + if (desc_rtl) > memcpy(desc_rtl, src, memsize); > > _edje_part_make_rtl(desc_rtl); > @@ -2015,24 +2021,27 @@ > else if (ep->part->type == EDJE_PART_TYPE_PROXY) > _edje_part_recalc_single_fill(ep, &((Edje_Part_Description_Proxy > *)desc)->proxy.fill, params); > > - /* colors */ > - if ((desc->color_class) && (*desc->color_class)) > - cc = _edje_color_class_find(ed, desc->color_class); > + if (ep->part->type != EDJE_PART_TYPE_VIRTUAL) > + { > + /* colors */ > + if ((desc->color_class) && (*desc->color_class)) > + cc = _edje_color_class_find(ed, desc->color_class); > > - if (cc) > - { > - params->color.r = (((int)cc->r + 1) * desc->color.r) >> 8; > - params->color.g = (((int)cc->g + 1) * desc->color.g) >> 8; > - params->color.b = (((int)cc->b + 1) * desc->color.b) >> 8; > - params->color.a = (((int)cc->a + 1) * desc->color.a) >> 8; > + if (cc) > + { > + params->color.r = (((int)cc->r + 1) * desc->color.r) >> 8; > + params->color.g = (((int)cc->g + 1) * desc->color.g) >> 8; > + params->color.b = (((int)cc->b + 1) * desc->color.b) >> 8; > + params->color.a = (((int)cc->a + 1) * desc->color.a) >> 8; > + } > + else > + { > + params->color.r = desc->color.r; > + params->color.g = desc->color.g; > + params->color.b = desc->color.b; > + params->color.a = desc->color.a; > + } > } > - else > - { > - params->color.r = desc->color.r; > - params->color.g = desc->color.g; > - params->color.b = desc->color.b; > - params->color.a = desc->color.a; > - } > > /* visible */ > params->visible = desc->visible; > @@ -2087,6 +2096,7 @@ > > break; > } > + case EDJE_PART_TYPE_VIRTUAL: > case EDJE_PART_TYPE_RECTANGLE: > case EDJE_PART_TYPE_BOX: > case EDJE_PART_TYPE_TABLE: > @@ -2158,6 +2168,9 @@ > case EDJE_PART_TYPE_EXTERNAL: > evas_object_image_source_set(ep->object, pp->swallowed_object); > break; > + case EDJE_PART_TYPE_VIRTUAL: > + /* FIXME: detect that at compile time and prevent it */ > + break; > } > > evas_object_image_fill_set(ep->object, p3->type.common.fill.x, > p3->type.common.fill.y, > @@ -2785,6 +2798,9 @@ > /* FIXME: definitivly remove this code when we switch to new > format. */ > abort(); > break; > + case EDJE_PART_TYPE_VIRTUAL: > + /* We really should do nothing on VIRTUAL part */ > + break; > } > > /* Some object need special recalc. */ > @@ -2816,6 +2832,9 @@ > /* FIXME: definitivly remove this code when we switch to new > format. */ > abort(); > break; > + case EDJE_PART_TYPE_VIRTUAL: > + /* We really should do nothing on VIRTUAL part */ > + break; > } > > if (ep->swallowed_object) > @@ -2839,7 +2858,7 @@ > mo = ep->swallowed_object; > } > else mo = ep->object; > - if (chosen_desc->map.on) > + if (chosen_desc->map.on && ep->part->type != EDJE_PART_TYPE_VIRTUAL) > { > static Evas_Map *map = NULL; > > @@ -2922,5 +2941,4 @@ > ep->invalidate = 0; > } > #endif > - > } > > Modified: trunk/edje/src/lib/edje_data.c > =================================================================== > --- trunk/edje/src/lib/edje_data.c 2012-06-04 01:39:10 UTC (rev 71673) > +++ trunk/edje/src/lib/edje_data.c 2012-06-04 02:57:15 UTC (rev 71674) > @@ -83,6 +83,7 @@ > EMP(BOX, box); > EMP(TABLE, table); > EMP(EXTERNAL, external); > +EMP(VIRTUAL, virtual); > EMP(part, part); > > #define FREED(eed) \ > @@ -105,7 +106,8 @@ > { EDJE_PART_TYPE_BOX, "box" }, > { EDJE_PART_TYPE_TABLE, "table" }, > { EDJE_PART_TYPE_EXTERNAL, "external" }, > - { EDJE_PART_TYPE_PROXY, "proxy" } > + { EDJE_PART_TYPE_PROXY, "proxy" }, > + { EDJE_PART_TYPE_VIRTUAL, "virtual" } > }; > > static const char * > @@ -329,6 +331,7 @@ > > EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, > Edje_Part_Collection_Directory_Entry, "count.BOX", count.BOX, EET_T_INT); > > EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, > Edje_Part_Collection_Directory_Entry, "count.TABLE", count.TABLE, EET_T_INT); > > EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, > Edje_Part_Collection_Directory_Entry, "count.EXTERNAL", count.EXTERNAL, > EET_T_INT); > + > EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, > Edje_Part_Collection_Directory_Entry, "count.VIRTUAL", count.VIRTUAL, > EET_T_INT); > > EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, > Edje_Part_Collection_Directory_Entry, "count.part", count.part, EET_T_INT); > > EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Edje_Style_Tag); > @@ -742,6 +745,7 @@ > eddc.func.type_set = _edje_description_variant_type_set; > _edje_edd_edje_part_description_variant = > eet_data_descriptor_file_new(&eddc); > > + EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, > "virtual", _edje_edd_edje_part_description_rectangle); > EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, > "rectangle", _edje_edd_edje_part_description_rectangle); > EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, > "swallow", _edje_edd_edje_part_description_swallow); > EET_DATA_DESCRIPTOR_ADD_MAPPING(_edje_edd_edje_part_description_variant, > "group", _edje_edd_edje_part_description_group); > @@ -767,6 +771,7 @@ > _edje_edd_edje_part_description_variant_list = > eet_data_descriptor_file_new(&eddc); > > EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, > "rectangle", rectangle); > + EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, > "virtual", rectangle); > EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, > "swallow", swallow); > EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, > "group", group); > EDJE_ADD_ARRAY_MAPPING(_edje_edd_edje_part_description_variant_list, > "image", image); > > Modified: trunk/edje/src/lib/edje_load.c > =================================================================== > --- trunk/edje/src/lib/edje_load.c 2012-06-04 01:39:10 UTC (rev 71673) > +++ trunk/edje/src/lib/edje_load.c 2012-06-04 02:57:15 UTC (rev 71674) > @@ -443,7 +443,8 @@ > _edje_part_description_find(ed, rp, "default", 0.0); > rp->chosen_description = rp->param1.description; > if (!rp->param1.description) > - ERR("no default part description!"); > + ERR("no default part description for '%s'!", > + rp->part->name); > > switch (ep->type) > { > @@ -487,6 +488,10 @@ > case EDJE_PART_TYPE_GRADIENT: > ERR("SPANK ! SPANK ! SPANK ! YOU ARE USING GRADIENT IN > PART %s FROM GROUP %s INSIDE FILE %s !! THEY ARE NOW REMOVED !", > ep->name, group, file); > + break; > + case EDJE_PART_TYPE_VIRTUAL: > + rp->object = NULL; > + break; > default: > ERR("wrong part type %i!", ep->type); > break; > @@ -551,7 +556,9 @@ > if (rp->part->clip_to_id >= 0) > { > rp->clip_to = ed->table_parts[rp->part->clip_to_id > % ed->table_parts_size]; > - if (rp->clip_to) > + if (rp->clip_to && > + rp->clip_to->object && > + rp->object) > { > > evas_object_pass_events_set(rp->clip_to->object, 1); > > evas_object_pointer_mode_set(rp->clip_to->object, > EVAS_OBJECT_POINTER_MODE_NOGRAB); > > Modified: trunk/edje/src/lib/edje_private.h > =================================================================== > --- trunk/edje/src/lib/edje_private.h 2012-06-04 01:39:10 UTC (rev 71673) > +++ trunk/edje/src/lib/edje_private.h 2012-06-04 02:57:15 UTC (rev 71674) > @@ -675,6 +675,7 @@ > TYPE GROUP; \ > TYPE BOX; \ > TYPE TABLE; \ > + TYPE VIRTUAL; \ > TYPE EXTERNAL; > > struct _Edje_Part_Collection_Directory_Entry > @@ -1667,6 +1668,7 @@ > extern Eina_Mempool *_emp_BOX; > extern Eina_Mempool *_emp_TABLE; > extern Eina_Mempool *_emp_EXTERNAL; > +extern Eina_Mempool *_emp_VIRTUAL; > extern Eina_Mempool *_emp_part; > > void _edje_part_pos_set(Edje *ed, Edje_Real_Part *ep, int mode, FLOAT_T > pos, FLOAT_T v1, FLOAT_T v2); > > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > enlightenment-svn mailing list > enlightenment-...@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-svn
------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel