summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSubodh Kumar <s7158.kumar@samsung.com>2019-07-12 11:58:35 -0400
committerMike Blumenkrantz <zmike@samsung.com>2019-07-12 12:04:06 -0400
commit2854702f8ec4c7899473f737c31420de429e9359 (patch)
treedf1f3516e842152abdf49c5848baa14e7bbed281
parenta9504b9e75c4c9d9b1c76b4a06134f7a66faf88d (diff)
edje: Add support for map zoom to use other part center.
Summary: Current: In edc, zoom is supposed to happen from object center, there is no way to change the center of the zoom. Changes: Adding support to change the center of zooming just like map rotation by using other part's center. @feature Reviewers: cedric, zmike Reviewed By: zmike Subscribers: zmike, cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9115
-rw-r--r--src/bin/edje/edje_cc_handlers.c56
-rw-r--r--src/examples/edje.mk3
-rw-r--r--src/examples/edje/center_zoom.edc105
-rw-r--r--src/examples/edje/meson.build1
-rw-r--r--src/lib/edje/edje_calc.c34
-rw-r--r--src/lib/edje/edje_data.c2
-rw-r--r--src/lib/edje/edje_main.c2
-rw-r--r--src/lib/edje/edje_private.h4
8 files changed, 199 insertions, 8 deletions
diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c
index 3d3b23b8c6..147db84280 100644
--- a/src/bin/edje/edje_cc_handlers.c
+++ b/src/bin/edje/edje_cc_handlers.c
@@ -497,6 +497,7 @@ static void st_collections_group_parts_part_description_map_perspective_on
497static void st_collections_group_parts_part_description_map_color(void); 497static void st_collections_group_parts_part_description_map_color(void);
498static void st_collections_group_parts_part_description_map_zoom_x(void); 498static void st_collections_group_parts_part_description_map_zoom_x(void);
499static void st_collections_group_parts_part_description_map_zoom_y(void); 499static void st_collections_group_parts_part_description_map_zoom_y(void);
500static void st_collections_group_parts_part_description_map_zoom_center(void);
500static void st_collections_group_parts_part_description_perspective_zplane(void); 501static void st_collections_group_parts_part_description_perspective_zplane(void);
501static void st_collections_group_parts_part_description_perspective_focal(void); 502static void st_collections_group_parts_part_description_perspective_focal(void);
502static void st_collections_group_parts_part_api(void); 503static void st_collections_group_parts_part_api(void);
@@ -1029,6 +1030,7 @@ New_Statement_Handler statement_handlers[] =
1029 {"collections.group.parts.part.description.map.color", st_collections_group_parts_part_description_map_color}, 1030 {"collections.group.parts.part.description.map.color", st_collections_group_parts_part_description_map_color},
1030 {"collections.group.parts.part.description.map.zoom.x", st_collections_group_parts_part_description_map_zoom_x}, 1031 {"collections.group.parts.part.description.map.zoom.x", st_collections_group_parts_part_description_map_zoom_x},
1031 {"collections.group.parts.part.description.map.zoom.y", st_collections_group_parts_part_description_map_zoom_y}, 1032 {"collections.group.parts.part.description.map.zoom.y", st_collections_group_parts_part_description_map_zoom_y},
1033 {"collections.group.parts.part.description.map.zoom.center", st_collections_group_parts_part_description_map_zoom_center},
1032 {"collections.group.parts.part.description.perspective.zplane", st_collections_group_parts_part_description_perspective_zplane}, 1034 {"collections.group.parts.part.description.perspective.zplane", st_collections_group_parts_part_description_perspective_zplane},
1033 {"collections.group.parts.part.description.perspective.focal", st_collections_group_parts_part_description_perspective_focal}, 1035 {"collections.group.parts.part.description.perspective.focal", st_collections_group_parts_part_description_perspective_focal},
1034 {"collections.group.parts.part.description.params.int", st_collections_group_parts_part_description_params_int}, 1036 {"collections.group.parts.part.description.params.int", st_collections_group_parts_part_description_params_int},
@@ -6447,6 +6449,7 @@ _part_desc_free(Edje_Part_Collection *pc,
6447 part_lookup_del(pc, &(ed->map.id_persp)); 6449 part_lookup_del(pc, &(ed->map.id_persp));
6448 part_lookup_del(pc, &(ed->map.id_light)); 6450 part_lookup_del(pc, &(ed->map.id_light));
6449 part_lookup_del(pc, &(ed->map.rot.id_center)); 6451 part_lookup_del(pc, &(ed->map.rot.id_center));
6452 part_lookup_del(pc, &(ed->map.zoom.id_center));
6450 6453
6451 switch (ep->type) 6454 switch (ep->type)
6452 { 6455 {
@@ -8600,6 +8603,7 @@ ob_collections_group_parts_part_description(void)
8600 ed->map.id_persp = -1; 8603 ed->map.id_persp = -1;
8601 ed->map.id_light = -1; 8604 ed->map.id_light = -1;
8602 ed->map.rot.id_center = -1; 8605 ed->map.rot.id_center = -1;
8606 ed->map.zoom.id_center = -1;
8603 ed->map.rot.x = FROM_DOUBLE(0.0); 8607 ed->map.rot.x = FROM_DOUBLE(0.0);
8604 ed->map.rot.y = FROM_DOUBLE(0.0); 8608 ed->map.rot.y = FROM_DOUBLE(0.0);
8605 ed->map.rot.z = FROM_DOUBLE(0.0); 8609 ed->map.rot.z = FROM_DOUBLE(0.0);
@@ -8759,6 +8763,7 @@ st_collections_group_parts_part_description_inherit(void)
8759 data_queue_copied_part_lookup(pc, &parent->map.id_persp, &ed->map.id_persp); 8763 data_queue_copied_part_lookup(pc, &parent->map.id_persp, &ed->map.id_persp);
8760 data_queue_copied_part_lookup(pc, &parent->map.id_light, &ed->map.id_light); 8764 data_queue_copied_part_lookup(pc, &parent->map.id_light, &ed->map.id_light);
8761 data_queue_copied_part_lookup(pc, &parent->map.rot.id_center, &ed->map.rot.id_center); 8765 data_queue_copied_part_lookup(pc, &parent->map.rot.id_center, &ed->map.rot.id_center);
8766 data_queue_copied_part_lookup(pc, &parent->map.zoom.id_center, &ed->map.zoom.id_center);
8762 8767
8763 /* make sure all the allocated memory is getting copied, not just 8768 /* make sure all the allocated memory is getting copied, not just
8764 * referenced 8769 * referenced
@@ -14294,6 +14299,57 @@ st_collections_group_parts_part_description_map_light(void)
14294 } 14299 }
14295} 14300}
14296 14301
14302/** @edcsubsection{collections_group_parts_description_map_zoom,
14303 * Group.Parts.Part.Description.Map.Zoom} */
14304
14305/**
14306 @page edcref
14307 @block
14308 rotation
14309 @context
14310 map {
14311 ..
14312 zoom {
14313 center: "name";
14314 x: 1.0;
14315 y: 1.0;
14316 }
14317 ..
14318 }
14319 @description
14320 Zooms the part, optionally from the center on another part.
14321 @endblock
14322
14323 @property
14324 center
14325 @parameters
14326 [another part's name]
14327 @effect
14328 This sets the part that is used as the center of zoom when
14329 zooming the part with this description. The part's center point
14330 is used as the zoom center when applying zoom from the
14331 x and y axes. If no center is given, the parts original center
14332 itself is used for the zoom center.
14333 @endproperty
14334*/
14335static void
14336st_collections_group_parts_part_description_map_zoom_center(void)
14337{
14338 Edje_Part_Collection *pc;
14339
14340 check_arg_count(1);
14341
14342 pc = eina_list_data_get(eina_list_last(edje_collections));
14343
14344 {
14345 char *name;
14346
14347 name = parse_str(0);
14348 data_queue_part_lookup(pc, name, &(current_desc->map.zoom.id_center));
14349 free(name);
14350 }
14351}
14352
14297/** 14353/**
14298 @page edcref 14354 @page edcref
14299 @property 14355 @property
diff --git a/src/examples/edje.mk b/src/examples/edje.mk
index ce4f7afafd..c9f89b193b 100644
--- a/src/examples/edje.mk
+++ b/src/examples/edje.mk
@@ -48,7 +48,8 @@ edje/swallow.edc \
48edje/table.edc \ 48edje/table.edc \
49edje/text.edc \ 49edje/text.edc \
50edje/textblock-hyphen.edc \ 50edje/textblock-hyphen.edc \
51edje/toggle_using_filter.edc 51edje/toggle_using_filter.edc \
52edje/center_zoom.edc
52 53
53MULTISENSE_EDCS = edje/multisense.edc 54MULTISENSE_EDCS = edje/multisense.edc
54if ENABLE_MULTISENSE 55if ENABLE_MULTISENSE
diff --git a/src/examples/edje/center_zoom.edc b/src/examples/edje/center_zoom.edc
new file mode 100644
index 0000000000..21d07257a8
--- /dev/null
+++ b/src/examples/edje/center_zoom.edc
@@ -0,0 +1,105 @@
1collections {
2group { name: "center_zoom_example";
3 min: 360 360;
4 max: 360 360;
5 parts {
6 part {
7 name: "bg";
8 type: RECT;
9 description {
10 state: "default" 0.0;
11 color: 0 0 0 255;
12 }
13 }
14 part {
15 name: "center_part";
16 type: RECT;
17 description {
18 state: "default" 0.0;
19 min: 25 25;
20 max: 25 25;
21 rel1.to:"bg";
22 rel2 {
23 relative: 1.0 0.5;
24 to: "bg";
25 }
26 }
27 }
28 part {
29 name: "rectangle";
30 type: RECT;
31 description {
32 state: "default" 0.0;
33 color: 0 0 255 128;
34 max: 150 150;
35 rel1 {
36 to: "bg";
37 }
38 rel2 {
39 to: "bg";
40 }
41 map {
42 on: 1;
43 zoom {
44 center: "center_part";
45 x: 0.0;
46 y: 0.0;
47 }
48 }
49 }
50 description {
51 state: "zoom" 0.0;
52 inherit: "default" 0.0;
53 map {
54 on: 1;
55 zoom {
56 center: "center_part";
57 x: 1;
58 y: 1;
59 }
60 }
61 }
62 }
63 part {
64 name: "title";
65 type: TEXT;
66 description {
67 state: "default" 0.0;
68 color: 200 200 200 255;
69 align: 0.5 0.0;
70 rel1.to:"bg";
71 rel2 {
72 relative: 1.0 0.0;
73 to: "bg";
74 }
75 text {
76 text: "Center Zoom Example";
77 font: "Sans";
78 size: 16;
79 min: 1 1;
80 }
81 }
82 }
83 part {
84 name: "event";
85 type: RECT;
86 mouse_events: 1;
87 description {
88 state: "default" 0.0;
89 color: 0 0 0 0;
90 }
91 }
92 }
93 programs {
94 program {
95 name: "move,bottom";
96 signal: "mouse,up,1";
97 source: "event";
98 action: STATE_SET "zoom" 0.0;
99 transition: LINEAR 1.0;
100 target: "rectangle";
101 }
102 }
103 }
104}
105
diff --git a/src/examples/edje/meson.build b/src/examples/edje/meson.build
index 21910ad389..ff57a6e29e 100644
--- a/src/examples/edje/meson.build
+++ b/src/examples/edje/meson.build
@@ -44,6 +44,7 @@ edc_files = [
44 'textblock-hyphen.edc', 44 'textblock-hyphen.edc',
45 'toggle_using_filter.edc', 45 'toggle_using_filter.edc',
46 'multisense.edc', 46 'multisense.edc',
47 'center_zoom.edc',
47] 48]
48 49
49if (get_option('physics')) 50if (get_option('physics'))
diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c
index 0619574e93..f3d31c8502 100644
--- a/src/lib/edje/edje_calc.c
+++ b/src/lib/edje/edje_calc.c
@@ -8,8 +8,11 @@ static void _edje_part_make_rtl(Edje_Part_Description_C
8static Edje_Part_Description_Common *_edje_get_description_by_orientation(Edje *ed, Edje_Part_Description_Common *src, Edje_Part_Description_Common **dst, unsigned char type); 8static Edje_Part_Description_Common *_edje_get_description_by_orientation(Edje *ed, Edje_Part_Description_Common *src, Edje_Part_Description_Common **dst, unsigned char type);
9 9
10static void _edje_part_recalc_single(Edje *ed, Edje_Real_Part *ep, 10static void _edje_part_recalc_single(Edje *ed, Edje_Real_Part *ep,
11 Edje_Part_Description_Common *desc, Edje_Part_Description_Common *chosen_desc, 11 Edje_Part_Description_Common *desc,
12 Edje_Real_Part *center, Edje_Real_Part *light, Edje_Real_Part *persp, 12 Edje_Part_Description_Common *chosen_desc,
13 Edje_Real_Part *center,
14 Edje_Real_Part *zoom_center,
15 Edje_Real_Part *light, Edje_Real_Part *persp,
13 Edje_Real_Part *rel1_to_x, Edje_Real_Part *rel1_to_y, 16 Edje_Real_Part *rel1_to_x, Edje_Real_Part *rel1_to_y,
14 Edje_Real_Part *rel2_to_x, Edje_Real_Part *rel2_to_y, 17 Edje_Real_Part *rel2_to_x, Edje_Real_Part *rel2_to_y,
15 Edje_Real_Part *clip_to, 18 Edje_Real_Part *clip_to,
@@ -2279,6 +2282,7 @@ static void
2279_edje_part_recalc_single_map(Edje *ed, 2282_edje_part_recalc_single_map(Edje *ed,
2280 Edje_Real_Part *ep EINA_UNUSED, 2283 Edje_Real_Part *ep EINA_UNUSED,
2281 Edje_Real_Part *center, 2284 Edje_Real_Part *center,
2285 Edje_Real_Part *zoom_center,
2282 Edje_Real_Part *light, 2286 Edje_Real_Part *light,
2283 Edje_Real_Part *persp, 2287 Edje_Real_Part *persp,
2284 Edje_Part_Description_Common *desc, 2288 Edje_Part_Description_Common *desc,
@@ -2293,6 +2297,7 @@ _edje_part_recalc_single_map(Edje *ed,
2293 2297
2294 EINA_COW_CALC_MAP_BEGIN(params, params_write) 2298 EINA_COW_CALC_MAP_BEGIN(params, params_write)
2295 { 2299 {
2300 //rotation center
2296 if (center) 2301 if (center)
2297 { 2302 {
2298 params_write->center.x = ed->x + center->x + (center->w / 2); 2303 params_write->center.x = ed->x + center->x + (center->w / 2);
@@ -2304,6 +2309,17 @@ _edje_part_recalc_single_map(Edje *ed,
2304 params_write->center.y = ed->y + params->final.y + (params->final.h / 2); 2309 params_write->center.y = ed->y + params->final.y + (params->final.h / 2);
2305 } 2310 }
2306 params_write->center.z = 0; 2311 params_write->center.z = 0;
2312 //zoom center
2313 if (zoom_center)
2314 {
2315 params_write->zoom_center.x = ed->x + zoom_center->x + (zoom_center->w / 2);
2316 params_write->zoom_center.y = ed->y + zoom_center->y + (zoom_center->h / 2);
2317 }
2318 else
2319 {
2320 params_write->zoom_center.x = ed->x + params->final.x + (params->final.w / 2);
2321 params_write->zoom_center.y = ed->y + params->final.y + (params->final.h / 2);
2322 }
2307 2323
2308 params_write->rotation.x = desc->map.rot.x; 2324 params_write->rotation.x = desc->map.rot.x;
2309 params_write->rotation.y = desc->map.rot.y; 2325 params_write->rotation.y = desc->map.rot.y;
@@ -2680,6 +2696,7 @@ _edje_part_recalc_single(Edje *ed,
2680 Edje_Part_Description_Common *desc, 2696 Edje_Part_Description_Common *desc,
2681 Edje_Part_Description_Common *chosen_desc, 2697 Edje_Part_Description_Common *chosen_desc,
2682 Edje_Real_Part *center, 2698 Edje_Real_Part *center,
2699 Edje_Real_Part *zoom_center,
2683 Edje_Real_Part *light, 2700 Edje_Real_Part *light,
2684 Edje_Real_Part *persp, 2701 Edje_Real_Part *persp,
2685 Edje_Real_Part *rel1_to_x, 2702 Edje_Real_Part *rel1_to_x,
@@ -3056,7 +3073,7 @@ _edje_part_recalc_single(Edje *ed,
3056 EINA_COW_CALC_PHYSICS_END(params, params_write); 3073 EINA_COW_CALC_PHYSICS_END(params, params_write);
3057 } 3074 }
3058#endif 3075#endif
3059 _edje_part_recalc_single_map(ed, ep, center, light, persp, desc, chosen_desc, params); 3076 _edje_part_recalc_single_map(ed, ep, center, zoom_center, light, persp, desc, chosen_desc, params);
3060} 3077}
3061 3078
3062static void 3079static void
@@ -3616,7 +3633,7 @@ _edje_map_prop_set(Evas_Map *map, const Edje_Calc_Params *pf,
3616 //zoom 3633 //zoom
3617 evas_map_util_zoom(map, 3634 evas_map_util_zoom(map,
3618 pf->ext->map->zoom.x, pf->ext->map->zoom.y, 3635 pf->ext->map->zoom.x, pf->ext->map->zoom.y,
3619 pf->ext->map->center.x, pf->ext->map->center.y); 3636 pf->ext->map->zoom_center.x, pf->ext->map->zoom_center.y);
3620 3637
3621 //rotate 3638 //rotate
3622 evas_map_util_3d_rotate(map, 3639 evas_map_util_3d_rotate(map,
@@ -3853,6 +3870,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta
3853 int statep2 = -1; 3870 int statep2 = -1;
3854 int statecl = -1; 3871 int statecl = -1;
3855 Edje_Real_Part *center[2] = { NULL, NULL }; 3872 Edje_Real_Part *center[2] = { NULL, NULL };
3873 Edje_Real_Part *zoom_center[2] = { NULL, NULL };
3856 Edje_Real_Part *light[2] = { NULL, NULL }; 3874 Edje_Real_Part *light[2] = { NULL, NULL };
3857 Edje_Real_Part *persp[2] = { NULL, NULL }; 3875 Edje_Real_Part *persp[2] = { NULL, NULL };
3858 Edje_Real_Part *rp1[4] = { NULL, NULL, NULL, NULL }; 3876 Edje_Real_Part *rp1[4] = { NULL, NULL, NULL, NULL };
@@ -4172,6 +4190,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta
4172 if (ep->param1.description->map.on) 4190 if (ep->param1.description->map.on)
4173 { 4191 {
4174 center[0] = _edje_real_part_state_get(ed, ep, flags, ep->param1.description->map.rot.id_center, &statec1); 4192 center[0] = _edje_real_part_state_get(ed, ep, flags, ep->param1.description->map.rot.id_center, &statec1);
4193 zoom_center[0] = _edje_real_part_state_get(ed, ep, flags, ep->param1.description->map.zoom.id_center, &statec1);
4175 light[0] = _edje_real_part_state_get(ed, ep, flags, ep->param1.description->map.id_light, &statel1); 4194 light[0] = _edje_real_part_state_get(ed, ep, flags, ep->param1.description->map.id_light, &statel1);
4176 4195
4177 if (chosen_desc->map.persp_on) 4196 if (chosen_desc->map.persp_on)
@@ -4183,6 +4202,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta
4183 if (ep->param2 && ep->param2->description->map.on) 4202 if (ep->param2 && ep->param2->description->map.on)
4184 { 4203 {
4185 center[1] = _edje_real_part_state_get(ed, ep, flags, ep->param2->description->map.rot.id_center, &statec2); 4204 center[1] = _edje_real_part_state_get(ed, ep, flags, ep->param2->description->map.rot.id_center, &statec2);
4205 zoom_center[1] = _edje_real_part_state_get(ed, ep, flags, ep->param2->description->map.zoom.id_center, &statec2);
4186 light[1] = _edje_real_part_state_get(ed, ep, flags, ep->param2->description->map.id_light, &statel2); 4206 light[1] = _edje_real_part_state_get(ed, ep, flags, ep->param2->description->map.id_light, &statel2);
4187 4207
4188 if (chosen_desc->map.persp_on) 4208 if (chosen_desc->map.persp_on)
@@ -4218,7 +4238,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta
4218#endif 4238#endif
4219 { 4239 {
4220 _edje_part_recalc_single(ed, ep, ep->param1.description, 4240 _edje_part_recalc_single(ed, ep, ep->param1.description,
4221 chosen_desc, center[0], light[0], 4241 chosen_desc, center[0], zoom_center[0], light[0],
4222 persp[0], rp1[Rel1X], rp1[Rel1Y], 4242 persp[0], rp1[Rel1X], rp1[Rel1Y],
4223 rp1[Rel2X], rp1[Rel2Y], clip1, confine_to, 4243 rp1[Rel2X], rp1[Rel2Y], clip1, confine_to,
4224 threshold, p1, mmw, mmh, 4244 threshold, p1, mmw, mmh,
@@ -4264,7 +4284,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta
4264#endif 4284#endif
4265 { 4285 {
4266 _edje_part_recalc_single(ed, ep, ep->param2->description, 4286 _edje_part_recalc_single(ed, ep, ep->param2->description,
4267 chosen_desc, center[1], light[1], 4287 chosen_desc, center[1], zoom_center[1], light[1],
4268 persp[1], rp2[Rel1X], rp2[Rel1Y], 4288 persp[1], rp2[Rel1X], rp2[Rel1Y],
4269 rp2[Rel2X], rp2[Rel2Y], clip2, confine_to, 4289 rp2[Rel2X], rp2[Rel2Y], clip2, confine_to,
4270 threshold, p2, mmw, mmh, 4290 threshold, p2, mmw, mmh,
@@ -4549,6 +4569,8 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta
4549 p3_write->center.x = INTP(p1->ext->map->center.x, p2->ext->map->center.x, pos); 4569 p3_write->center.x = INTP(p1->ext->map->center.x, p2->ext->map->center.x, pos);
4550 p3_write->center.y = INTP(p1->ext->map->center.y, p2->ext->map->center.y, pos); 4570 p3_write->center.y = INTP(p1->ext->map->center.y, p2->ext->map->center.y, pos);
4551 p3_write->center.z = INTP(p1->ext->map->center.z, p2->ext->map->center.z, pos); 4571 p3_write->center.z = INTP(p1->ext->map->center.z, p2->ext->map->center.z, pos);
4572 p3_write->zoom_center.x = INTP(p1->ext->map->zoom_center.x, p2->ext->map->zoom_center.x, pos);
4573 p3_write->zoom_center.y = INTP(p1->ext->map->zoom_center.y, p2->ext->map->zoom_center.y, pos);
4552 p3_write->rotation.x = FFP(p1->ext->map->rotation.x, p2->ext->map->rotation.x, pos); 4574 p3_write->rotation.x = FFP(p1->ext->map->rotation.x, p2->ext->map->rotation.x, pos);
4553 p3_write->rotation.y = FFP(p1->ext->map->rotation.y, p2->ext->map->rotation.y, pos); 4575 p3_write->rotation.y = FFP(p1->ext->map->rotation.y, p2->ext->map->rotation.y, pos);
4554 p3_write->rotation.z = FFP(p1->ext->map->rotation.z, p2->ext->map->rotation.z, pos); 4576 p3_write->rotation.z = FFP(p1->ext->map->rotation.z, p2->ext->map->rotation.z, pos);
diff --git a/src/lib/edje/edje_data.c b/src/lib/edje/edje_data.c
index ae262e25c7..08fdae4256 100644
--- a/src/lib/edje/edje_data.c
+++ b/src/lib/edje/edje_data.c
@@ -797,6 +797,7 @@ _edje_edd_init(void)
797 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.id_persp", map.id_persp, EET_T_INT); \ 797 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.id_persp", map.id_persp, EET_T_INT); \
798 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.id_light", map.id_light, EET_T_INT); \ 798 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.id_light", map.id_light, EET_T_INT); \
799 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.rot.id_center", map.rot.id_center, EET_T_INT); \ 799 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.rot.id_center", map.rot.id_center, EET_T_INT); \
800 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.zoom.id_center", map.zoom.id_center, EET_T_INT); \
800 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.rot.x", map.rot.x, EDJE_T_FLOAT); \ 801 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.rot.x", map.rot.x, EDJE_T_FLOAT); \
801 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.rot.y", map.rot.y, EDJE_T_FLOAT); \ 802 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.rot.y", map.rot.y, EDJE_T_FLOAT); \
802 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.rot.z", map.rot.z, EDJE_T_FLOAT); \ 803 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.rot.z", map.rot.z, EDJE_T_FLOAT); \
@@ -891,6 +892,7 @@ _edje_edd_init(void)
891 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.id_persp", Dec.map.id_persp, EET_T_INT); \ 892 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.id_persp", Dec.map.id_persp, EET_T_INT); \
892 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.id_light", Dec.map.id_light, EET_T_INT); \ 893 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.id_light", Dec.map.id_light, EET_T_INT); \
893 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.rot.id_center", Dec.map.rot.id_center, EET_T_INT); \ 894 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.rot.id_center", Dec.map.rot.id_center, EET_T_INT); \
895 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.zoom.id_center", Dec.map.zoom.id_center, EET_T_INT); \
894 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.rot.x", Dec.map.rot.x, EDJE_T_FLOAT); \ 896 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.rot.x", Dec.map.rot.x, EDJE_T_FLOAT); \
895 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.rot.y", Dec.map.rot.y, EDJE_T_FLOAT); \ 897 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.rot.y", Dec.map.rot.y, EDJE_T_FLOAT); \
896 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.rot.z", Dec.map.rot.z, EDJE_T_FLOAT); \ 898 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.rot.z", Dec.map.rot.z, EDJE_T_FLOAT); \
diff --git a/src/lib/edje/edje_main.c b/src/lib/edje/edje_main.c
index dc2c35cba5..d794c961b4 100644
--- a/src/lib/edje/edje_main.c
+++ b/src/lib/edje/edje_main.c
@@ -16,7 +16,7 @@ Eina_Cow *_edje_calc_params_physics_cow = NULL;
16Edje_Global *_edje_global_obj = NULL; 16Edje_Global *_edje_global_obj = NULL;
17 17
18static const Edje_Calc_Params_Map default_calc_map = { 18static const Edje_Calc_Params_Map default_calc_map = {
19 { 0, 0, 0 }, { 0.0, 0.0, 0.0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0.0, 0.0 }, NULL, 0 19 { 0, 0, 0 }, { 0, 0 }, { 0.0, 0.0, 0.0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0.0, 0.0 }, NULL, 0
20}; 20};
21 21
22static const Edje_Calc_Params_Physics default_calc_physics = { 22static const Edje_Calc_Params_Physics default_calc_physics = {
diff --git a/src/lib/edje/edje_private.h b/src/lib/edje/edje_private.h
index c8362dbb56..15145aeaa1 100644
--- a/src/lib/edje/edje_private.h
+++ b/src/lib/edje/edje_private.h
@@ -1302,6 +1302,7 @@ struct _Edje_Part_Description_Common
1302 } rot; 1302 } rot;
1303 struct { 1303 struct {
1304 FLOAT_T x, y; 1304 FLOAT_T x, y;
1305 int id_center;
1305 } zoom; 1306 } zoom;
1306 Edje_Map_Color **colors; /* List of the Edje_Map_Color */ 1307 Edje_Map_Color **colors; /* List of the Edje_Map_Color */
1307 unsigned int colors_count; 1308 unsigned int colors_count;
@@ -1803,6 +1804,9 @@ struct _Edje_Calc_Params_Map
1803 int x, y, z; 1804 int x, y, z;
1804 } center; // 12 1805 } center; // 12
1805 struct { 1806 struct {
1807 int x, y;
1808 } zoom_center; // 12
1809 struct {
1806 FLOAT_T x, y, z; 1810 FLOAT_T x, y, z;
1807 } rotation; // 24 1811 } rotation; // 24
1808 struct { 1812 struct {