diff options
Diffstat (limited to 'src/examples/elementary/performance')
-rw-r--r-- | src/examples/elementary/performance/HowTo | 13 | ||||
-rw-r--r-- | src/examples/elementary/performance/Tools.h | 19 | ||||
-rw-r--r-- | src/examples/elementary/performance/background.png | bin | 177255 -> 0 bytes | |||
-rw-r--r-- | src/examples/elementary/performance/camera_light.c | 354 | ||||
-rw-r--r-- | src/examples/elementary/performance/graphical.c | 622 | ||||
-rw-r--r-- | src/examples/elementary/performance/graphical_struct.h | 90 | ||||
-rw-r--r-- | src/examples/elementary/performance/initial_config.xml | 11 | ||||
-rw-r--r-- | src/examples/elementary/performance/layout.edc | 170 | ||||
-rw-r--r-- | src/examples/elementary/performance/meson.build | 31 | ||||
-rw-r--r-- | src/examples/elementary/performance/performance.c | 953 | ||||
-rw-r--r-- | src/examples/elementary/performance/target_texture.png | bin | 2123166 -> 0 bytes | |||
-rw-r--r-- | src/examples/elementary/performance/tools_private.h | 51 |
12 files changed, 0 insertions, 2314 deletions
diff --git a/src/examples/elementary/performance/HowTo b/src/examples/elementary/performance/HowTo deleted file mode 100644 index 8417fa0f34..0000000000 --- a/src/examples/elementary/performance/HowTo +++ /dev/null @@ -1,13 +0,0 @@ -It is application for quick checking changes in Evas 3D. - -Dependences (tested on): - efl >= 1.13.0 elementary >= 1.13.0 - xserver-xorg-video-nouveau driver - OpenGL rendering acceleration for elemenatry -Main features: - effects shadow, fog, colorpick - fps (Be careful, don't use changing speed animation and stop animation during measuring). - load 3D models - navigation panel (by right click) - -Warnings: Until 3D destructor work properly, you can have lags after set a lot of 3D models or spheres with precision >=50 diff --git a/src/examples/elementary/performance/Tools.h b/src/examples/elementary/performance/Tools.h deleted file mode 100644 index c3cf8ca3a7..0000000000 --- a/src/examples/elementary/performance/Tools.h +++ /dev/null @@ -1,19 +0,0 @@ - -/*initialization navigation panel*/ -Evas_Object * -init_panel_camera_light(Evas_Object *win, Eo* camera_node, Eo* light_node, double posX, double posY); -/*free resources*/ -void -panel_camera_light_fini(Evas_Object *navigation); -/*initialization graphical objects*/ -Evas_Object * -init_graphical_window(Evas_Object *image); -/*Set step of range*/ -Eina_Bool -panel_camera_coord_step_set(Evas_Object *navigation, int step); -Eina_Bool -panel_camera_angle_step_set(Evas_Object *navigation, int step); -Eina_Bool -panel_light_coord_step_set(Evas_Object *navigation, int step); -Eina_Bool -panel_light_angle_step_set(Evas_Object *navigation, int step); diff --git a/src/examples/elementary/performance/background.png b/src/examples/elementary/performance/background.png Binary files differdeleted file mode 100644 index 190a74f631..0000000000 --- a/src/examples/elementary/performance/background.png +++ /dev/null diff --git a/src/examples/elementary/performance/camera_light.c b/src/examples/elementary/performance/camera_light.c deleted file mode 100644 index 98be8c24ef..0000000000 --- a/src/examples/elementary/performance/camera_light.c +++ /dev/null @@ -1,354 +0,0 @@ -#include "tools_private.h" - -Eina_Bool _alloc_memory(Axis_Key **ckey, Panel_Struct **pobj, Axis_Key **lkey) -{ - *ckey = calloc(1, sizeof(Axis_Key)); - *pobj = calloc(1, sizeof(Panel_Struct)); - *lkey = calloc(1, sizeof(Axis_Key)); - - if (!(*ckey) || !(*pobj) || !(*lkey)) - { - printf("Not enough memory - at %s line %d\n", __FILE__, __LINE__); - free(*ckey); - free(*pobj); - free(*lkey); - return EINA_FALSE; - } - - return EINA_TRUE; -} - -Evas_Object * -init_panel_camera_light(Evas_Object *win, Eo *camera_node, Eo *light_node, double posX, double posY) -{ - Evas_Object *nnavig = NULL, *bx_navigall = NULL; - Evas_Object *bx_navigcamup = NULL, *bx_navigcamlow = NULL, *bx_navigligthup = NULL, *bx_navigligthlow = NULL; - Evas_Object *spX = NULL, *spY = NULL, *spZ = NULL; - Evas_Object *spangle = NULL, *spaX = NULL, *spaY = NULL, *spaZ = NULL; - Evas_Object *splX = NULL, *splY = NULL, *splZ = NULL; - Evas_Object *splangle = NULL, *splaX = NULL, *splaY = NULL, *splaZ = NULL; - Evas_Object *separator = NULL; - Axis_Key *camera_xyz = NULL, *light_xyz = NULL; - Panel_Struct *pobject = NULL; - Evas_Real px = 0, py = 0, pz = 0; - - if (ELM_WIN_UNKNOWN == elm_win_type_get(win)) - { - printf("Not appropriate parent object - at %s line %d\n", __FILE__, __LINE__); - return NULL; - } - - if (!_alloc_memory(&camera_xyz, &pobject, &light_xyz)) return NULL; - - /*Navigation panel layout*/ - bx_navigall = elm_box_add(win); - elm_box_homogeneous_set(bx_navigall, EINA_TRUE); - evas_object_show(bx_navigall); - - bx_navigcamup = elm_box_add(win); - elm_box_horizontal_set(bx_navigcamup, EINA_TRUE); - elm_box_homogeneous_set(bx_navigcamup, EINA_TRUE); - elm_box_pack_end(bx_navigall, bx_navigcamup); - evas_object_show(bx_navigcamup); - bx_navigcamlow = elm_box_add(win); - elm_box_horizontal_set(bx_navigcamlow, EINA_TRUE); - elm_box_homogeneous_set(bx_navigcamlow, EINA_TRUE); - elm_box_pack_end(bx_navigall, bx_navigcamlow); - evas_object_show(bx_navigcamlow); - - separator = elm_separator_add(win); - elm_separator_horizontal_set(separator, EINA_TRUE); - elm_box_pack_end(bx_navigall, separator); - evas_object_show(separator); - - bx_navigligthup = elm_box_add(win); - elm_box_horizontal_set(bx_navigligthup, EINA_TRUE); - elm_box_homogeneous_set(bx_navigligthup, EINA_TRUE); - elm_box_pack_end(bx_navigall, bx_navigligthup); - evas_object_show(bx_navigligthup); - bx_navigligthlow = elm_box_add(win); - elm_box_horizontal_set(bx_navigligthlow, EINA_TRUE); - elm_box_homogeneous_set(bx_navigligthlow, EINA_TRUE); - elm_box_pack_end(bx_navigall, bx_navigligthlow); - evas_object_show(bx_navigligthlow); - - /*Set UI panel for changing camera and light*/ - /*Init sp camera by default*/ - spX = elm_spinner_add(win); - elm_spinner_editable_set(spX, EINA_TRUE); - elm_spinner_min_max_set(spX, -COORDRANGE, COORDRANGE); - elm_spinner_label_format_set(spX, "camera X: %1.0f"); - elm_spinner_step_set(spX, 1.0); - pobject->cspX = spX; - elm_box_pack_end(bx_navigcamup, spX); - evas_object_show(spX); - evas_object_smart_callback_add(spX, "changed", _camera_light_changeX_cb, camera_node); - - spY = elm_spinner_add(win); - elm_spinner_editable_set(spY, EINA_TRUE); - elm_spinner_min_max_set(spY, -COORDRANGE, COORDRANGE); - elm_spinner_label_format_set(spY, "camera Y: %1.0f"); - elm_spinner_step_set(spY, 1.0); - pobject->cspY = spY; - elm_box_pack_end(bx_navigcamup, spY); - evas_object_show(spY); - evas_object_smart_callback_add(spY, "changed", _camera_light_changeY_cb, camera_node); - - spZ = elm_spinner_add(win); - elm_spinner_editable_set(spZ, EINA_TRUE); - elm_spinner_min_max_set(spZ, -COORDRANGE, COORDRANGE); - elm_spinner_label_format_set(spZ, "camera Z: %1.0f"); - elm_spinner_step_set(spY, 1.0); - pobject->cspZ = spZ; - elm_box_pack_end(bx_navigcamup, spZ); - evas_object_show(spZ); - evas_object_smart_callback_add(spZ, "changed", _camera_light_changeZ_cb, camera_node); - - evas_canvas3d_node_position_get(camera_node, EVAS_CANVAS3D_SPACE_PARENT, &px, &py, &pz); - elm_spinner_value_set(spX, px); - elm_spinner_value_set(spY, py); - elm_spinner_value_set(spZ, pz); - - spangle = elm_spinner_add(win); - elm_spinner_editable_set(spangle, EINA_TRUE); - elm_spinner_min_max_set(spangle, 0.0, ANGLERANGE); - elm_spinner_label_format_set(spangle, "angle: %1.0f"); - elm_spinner_step_set(spangle, 1.0); - pobject->cspangle = spangle; - evas_object_data_set(spangle, axiskeys, camera_xyz); - elm_box_pack_end(bx_navigcamlow, spangle); - elm_spinner_value_set(spangle, 0.0); - evas_object_show(spangle); - evas_object_smart_callback_add(spangle, "changed", _camera_light_angle_change_cb, camera_node); - - spaX = elm_spinner_add(win); - elm_spinner_min_max_set(spaX, 0.0, 1.0); - elm_spinner_label_format_set(spaX, "axisX: %1.0f"); - elm_spinner_step_set(spaX, 1.0); - elm_box_pack_end(bx_navigcamlow, spaX); - evas_object_show(spaX); - evas_object_smart_callback_add(spaX, "changed", _camera_light_axisX_change_cb, spangle); - - spaY = elm_spinner_add(win); - elm_spinner_min_max_set(spaY, 0.0, 1.0); - elm_spinner_label_format_set(spaY, "axisY: %1.0f"); - elm_spinner_step_set(spaY, 1.0); - elm_box_pack_end(bx_navigcamlow, spaY); - evas_object_show(spaY); - evas_object_smart_callback_add(spaY, "changed", _camera_light_axisY_change_cb, spangle); - - spaZ = elm_spinner_add(win); - elm_spinner_min_max_set(spaZ, 0.0, 1.0); - elm_spinner_label_format_set(spaZ, "axisZ: %1.0f"); - elm_spinner_step_set(spaZ, 1.0); - elm_box_pack_end(bx_navigcamlow, spaZ); - evas_object_show(spaZ); - evas_object_smart_callback_add(spaZ, "changed", _camera_light_axisZ_change_cb, spangle); - - /*Init spl light by default*/ - splX = elm_spinner_add(win); - elm_spinner_editable_set(splX, EINA_TRUE); - elm_spinner_min_max_set(splX, -COORDRANGE, COORDRANGE); - elm_spinner_label_format_set(splX, "light X: %1.0f"); - elm_spinner_step_set(splX, 1.0); - pobject->lspX = splX; - elm_box_pack_end(bx_navigligthup, splX); - evas_object_show(splX); - evas_object_smart_callback_add(splX, "changed", _camera_light_changeX_cb, light_node); - - splY = elm_spinner_add(win); - elm_spinner_editable_set(splY, EINA_TRUE); - elm_spinner_min_max_set(splY, -COORDRANGE, COORDRANGE); - elm_spinner_label_format_set(splY, "light Y: %1.0f"); - elm_spinner_step_set(splY, 1.0); - pobject->lspY = splY; - elm_box_pack_end(bx_navigligthup, splY); - evas_object_show(splY); - evas_object_smart_callback_add(splY, "changed", _camera_light_changeY_cb, light_node); - - splZ = elm_spinner_add(win); - elm_spinner_editable_set(splZ, EINA_TRUE); - elm_spinner_min_max_set(splZ, -COORDRANGE, COORDRANGE); - elm_spinner_label_format_set(splZ, "light Z: %1.0f"); - elm_spinner_step_set(splY, 1.0); - pobject->lspZ = splZ; - elm_box_pack_end(bx_navigligthup, splZ); - evas_object_show(splZ); - evas_object_smart_callback_add(splZ, "changed", _camera_light_changeZ_cb, light_node); - - evas_canvas3d_node_position_get(light_node, EVAS_CANVAS3D_SPACE_PARENT, &px, &py, &pz); - elm_spinner_value_set(splX, px); - elm_spinner_value_set(splY, py); - elm_spinner_value_set(splZ, pz); - - splangle = elm_spinner_add(win); - elm_spinner_editable_set(splangle, EINA_TRUE); - elm_spinner_min_max_set(splangle, 0.0, ANGLERANGE); - elm_spinner_label_format_set(splangle, "angle: %1.0f"); - elm_spinner_step_set(splangle, 1.0); - pobject->lspangle = splangle; - evas_object_data_set(splangle, axiskeys, light_xyz); - elm_box_pack_end(bx_navigligthlow, splangle); - elm_spinner_value_set(splangle, 0.0); - evas_object_show(splangle); - evas_object_smart_callback_add(splangle, "changed", _camera_light_angle_change_cb, light_node); - - splaX = elm_spinner_add(win); - elm_spinner_min_max_set(splaX, 0.0, 1.0); - elm_spinner_label_format_set(splaX, "axisX: %1.0f"); - elm_spinner_step_set(splaX, 1.0); - elm_box_pack_end(bx_navigligthlow, splaX); - evas_object_show(splaX); - evas_object_smart_callback_add(splaX, "changed", _camera_light_axisX_change_cb, splangle); - - splaY = elm_spinner_add(win); - elm_spinner_min_max_set(splaY, 0.0, 1.0); - elm_spinner_label_format_set(splaY, "axisY: %1.0f"); - elm_spinner_step_set(splaY, 1.0); - elm_box_pack_end(bx_navigligthlow, splaY); - evas_object_show(splaY); - evas_object_smart_callback_add(splaY, "changed", _camera_light_axisY_change_cb, splangle); - - splaZ = elm_spinner_add(win); - elm_spinner_min_max_set(splaZ, 0.0, 1.0); - elm_spinner_label_format_set(splaZ, "axisZ: %1.0f"); - elm_spinner_step_set(splaZ, 1.0); - elm_box_pack_end(bx_navigligthlow, splaZ); - evas_object_show(splaZ); - evas_object_smart_callback_add(spaZ, "changed", _camera_light_axisZ_change_cb, splangle); - - nnavig = elm_notify_add(win); - elm_object_content_set(nnavig, bx_navigall); - elm_notify_align_set(nnavig, posX, posY); - evas_object_data_set(nnavig, pb, pobject); - - return nnavig; -} - -static void -_camera_light_changeX_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) -{ - Evas_Real x, y, z; - - if ((Eo*)data) - { - evas_canvas3d_node_position_get((Eo*)data, EVAS_CANVAS3D_SPACE_PARENT, NULL, &y, &z); - x = elm_spinner_value_get(obj); - evas_canvas3d_node_position_set((Eo*)data, x, y, z); - } -} -static void -_camera_light_changeY_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) -{ - Evas_Real x, y, z; - - if ((Eo*)data) - { - evas_canvas3d_node_position_get((Eo*)data, EVAS_CANVAS3D_SPACE_PARENT, &x, NULL, &z); - y = elm_spinner_value_get(obj); - evas_canvas3d_node_position_set((Eo*)data, x, y, z); - } -} -static void -_camera_light_changeZ_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) -{ - Evas_Real x, y, z; - - if ((Eo*)data) - { - evas_canvas3d_node_position_get((Eo*)data, EVAS_CANVAS3D_SPACE_PARENT, &x, &y, NULL); - z = elm_spinner_value_get(obj); - evas_canvas3d_node_position_set((Eo*)data, x, y, z); - } -} -static void -_camera_light_angle_change_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) -{ - Axis_Key *key = evas_object_data_get(obj, axiskeys); - Evas_Real aw = 0; - if ((Eo*)data) - { - aw = elm_spinner_value_get(obj); - aw = cos(aw * M_PI / 360.0); - evas_canvas3d_node_orientation_set(((Eo*)data), key->x, key->y, key->z, aw); - } -} -static void -_camera_light_axisX_change_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) -{ - Evas_Object *fsa = (Evas_Object*)data; - Axis_Key *key = evas_object_data_get(fsa, axiskeys); - if (key) - key->x = elm_spinner_value_get(obj); -} -static void -_camera_light_axisY_change_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) -{ - Evas_Object *fsa = (Evas_Object*)data; - Axis_Key *key = evas_object_data_get(fsa, axiskeys); - if (key) - key->y = elm_spinner_value_get(obj); -} -static void -_camera_light_axisZ_change_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) -{ - Evas_Object *fsa = (Evas_Object*)data; - Axis_Key *key = evas_object_data_get(fsa, axiskeys); - if (key) - key->z = elm_spinner_value_get(obj); -} - -Eina_Bool -panel_camera_coord_step_set(Evas_Object *navigation, int step) -{ - Panel_Struct *pobject = NULL; - - pobject = evas_object_data_get(navigation, pb); - elm_spinner_step_set(pobject->cspX, step); - elm_spinner_step_set(pobject->cspY, step); - elm_spinner_step_set(pobject->cspZ, step); - return EINA_TRUE; -} - -Eina_Bool -panel_camera_angle_step_set(Evas_Object *navigation, int step) -{ - Panel_Struct *pobject = NULL; - - pobject = evas_object_data_get(navigation, pb); - elm_spinner_step_set(pobject->cspangle, step); - return EINA_TRUE; -} - -Eina_Bool -panel_light_coord_step_set(Evas_Object *navigation, int step) -{ - Panel_Struct *pobject = NULL; - - pobject = evas_object_data_get(navigation, pb); - elm_spinner_step_set(pobject->lspX, step); - elm_spinner_step_set(pobject->lspY, step); - elm_spinner_step_set(pobject->lspZ, step); - return EINA_TRUE; -} - -Eina_Bool -panel_light_angle_step_set(Evas_Object *navigation, int step) -{ - Panel_Struct *pobject = NULL; - - pobject = evas_object_data_get(navigation, pb); - elm_spinner_step_set(pobject->lspangle, step); - return EINA_TRUE; -} - -void panel_camera_light_fini(Evas_Object *navigation) -{ - Panel_Struct *pobject = evas_object_data_get(navigation, pb); - Axis_Key *ckey = evas_object_data_get(pobject->cspangle, axiskeys); - Axis_Key *lkey = evas_object_data_get(pobject->lspangle, axiskeys); - free(pobject); - free(ckey); - free(lkey); -} - diff --git a/src/examples/elementary/performance/graphical.c b/src/examples/elementary/performance/graphical.c deleted file mode 100644 index d68d865a80..0000000000 --- a/src/examples/elementary/performance/graphical.c +++ /dev/null @@ -1,622 +0,0 @@ -#ifndef EFL_BETA_API_SUPPORT -# define EFL_BETA_API_SUPPORT -#endif - -#include <math.h> -#include <stdlib.h> -#include <time.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <Eo.h> -#include <Evas.h> -#include <Ecore.h> -#include <Ecore_Evas.h> -#include <Eina.h> - -#include "graphical_struct.h" - -#define FOG_COLOR 0.5, 0.5, 0.5 -#define FOG_FACTOR 0.1 - -static inline vec3 -_normalize(const vec3 *v) -{ - double l = sqrt(v->x * v->x + v->y * v->y + v->z * v->z); - vec3 vec; - - vec.x = v->x / l; - vec.y = v->y / l; - vec.z = v->z / l; - - return vec; -} -static void -_sphere_count(int prec, float type_init) -{ - int i, j; - - globalGraphical.vertex_count = (prec + 1) * (prec + 1); - - /* Allocate buffer. */ - if (globalGraphical.places) free(globalGraphical.places); - globalGraphical.places = malloc(sizeof(place) * globalGraphical.vertex_count); - - for (i = 0; i <= prec; i++) - { - double lati = M_PI * (type_init + (double)i * (1 - 2 * type_init) / (double)prec); - double y = cos(lati); - double r = fabs(sin(lati)); - - for (j = 0; j <= prec; j++) - { - double longi = (M_PI * 2.0 * j) / (prec + 1); - place *v = &globalGraphical.places[i * (prec + 1) + j]; - v->position.x = r * sin(longi); - v->position.y = y; - v->position.z = r * cos(longi); - } - } -} -static void -_sphere_init(int prec) -{ - int i, j; - unsigned short *index; - - globalGraphical.vertex_count = (prec + 1) * (prec + 1); - globalGraphical.index_count = prec * prec * 6; - - /* Allocate buffer. */ - if (globalGraphical.vertices) free(globalGraphical.vertices); - if (globalGraphical.indices) free(globalGraphical.indices); - - globalGraphical.vertices = malloc(sizeof(vertex) * globalGraphical.vertex_count); - globalGraphical.indices = malloc(sizeof(unsigned short) * globalGraphical.index_count); - - for (i = 0; i <= prec; i++) - { - double lati = (M_PI * (double)i) / (double)prec; - double y = cos(lati); - double r = fabs(sin(lati)); - - for (j = 0; j <= prec; j++) - { - double longi = (M_PI * 2.0 * j) / prec; - vertex *v = &globalGraphical.vertices[i * (prec + 1) + j]; - - if (j == 0 || j == prec) v->position.x = 0.0; - else v->position.x = r * sin(longi); - - v->position.y = y; - - if (j == 0 || j == prec) v->position.z = r; - else v->position.z = r * cos(longi); - - v->normal = v->position; - - if (v->position.x > 0.0) - { - v->tangent.x = -v->normal.y; - v->tangent.y = v->normal.x; - v->tangent.z = v->normal.z; - } - else - { - v->tangent.x = v->normal.y; - v->tangent.y = -v->normal.x; - v->tangent.z = v->normal.z; - } - - v->color.x = v->position.x; - v->color.y = v->position.y; - v->color.z = v->position.z; - v->color.w = 1.0; - - if (j == prec) v->texcoord.x = 1.0; - else if (j == 0) v->texcoord.x = 0.0; - else v->texcoord.x = (double)j / (double)prec; - - if (i == prec) v->texcoord.y = 1.0; - else if (i == 0) v->texcoord.y = 0.0; - else v->texcoord.y = 1.0 - (double)i / (double)prec; - } - } - - index = &globalGraphical.indices[0]; - - for (i = 0; i < prec; i++) - { - for (j = 0; j < prec; j++) - { - *index++ = i * (prec + 1) + j; - *index++ = i * (prec + 1) + j + 1; - *index++ = (i + 1) * (prec + 1) + j; - - *index++ = (i + 1) * (prec + 1) + j; - *index++ = i * (prec + 1) + j + 1; - *index++ = (i + 1) * (prec + 1) + j + 1; - } - } - - for (i = 0; i < globalGraphical.index_count; i += 3) - { - vertex *v0 = &globalGraphical.vertices[globalGraphical.indices[i + 0]]; - vertex *v1 = &globalGraphical.vertices[globalGraphical.indices[i + 1]]; - vertex *v2 = &globalGraphical.vertices[globalGraphical.indices[i + 2]]; - - vec3 e1, e2; - float du1, du2, dv1, dv2, f; - vec3 tangent; - - e1.x = v1->position.x - v0->position.x; - e1.y = v1->position.y - v0->position.y; - e1.z = v1->position.z - v0->position.z; - - e2.x = v2->position.x - v0->position.x; - e2.y = v2->position.y - v0->position.y; - e2.z = v2->position.z - v0->position.z; - - du1 = v1->texcoord.x - v0->texcoord.x; - dv1 = v1->texcoord.y - v0->texcoord.y; - - du2 = v2->texcoord.x - v0->texcoord.x; - dv2 = v2->texcoord.y - v0->texcoord.y; - - f = 1.0 / (du1 * dv2 - du2 * dv1); - - tangent.x = f * (dv2 * e1.x - dv1 * e2.x); - tangent.y = f * (dv2 * e1.y - dv1 * e2.y); - tangent.z = f * (dv2 * e1.z - dv1 * e2.z); - - v0->tangent = tangent; - } - - for (i = 0; i <= prec; i++) - { - for (j = 0; j <= prec; j++) - { - if (j == prec) - { - vertex *v = &globalGraphical.vertices[i * (prec + 1) + j]; - v->tangent = globalGraphical.vertices[i * (prec + 1)].tangent; - } - } - } -} -/*FIXME Need to be from bounding of root_node*/ -void _init_bounding() -{ - - float cube_vertices[] = - { - /* Front */ - -50.0, 1.0, 50.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, - 50.0, 1.0, 50.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, - -50.0, -1.0, 50.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, - 50.0, -1.0, 50.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, - - /* Back */ - 50.0, 1.0, -50.0, 0.0, 0.0, -1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, - -50.0, 1.0, -50.0, 0.0, 0.0, -1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, - 50.0, -1.0, -50.0, 0.0, 0.0, -1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, - -50.0, -1.0, -50.0, 0.0, 0.0, -1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, - - /* Left */ - -50.0, 1.0, -50.0, -1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, - -50.0, 1.0, 50.0, -1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, - -50.0, -1.0, -50.0, -1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, - -50.0, -1.0, 50.0, -1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, - - /* Right */ - 50.0, 1.0, 50.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, - 50.0, 1.0, -50.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, - 50.0, -1.0, 50.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, - 50.0, -1.0, -50.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, - - /* Top */ - -50.0, 1.0, -50.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, - 50.0, 1.0, -50.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, - -50.0, 1.0, 50.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, - 50.0, 1.0, 50.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, - - /* Bottom */ - 50.0, -1.0, -50.0, 0.0, -1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, - -50.0, -1.0, -50.0, 0.0, -1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, - 50.0, -1.0, 50.0, 0.0, -1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, - -50.0, -1.0, 50.0, 0.0, -1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, - }; - - unsigned short cube_indices[] = - { - /* Front */ - 0, 1, 2, 2, 1, 3, - - /* Back */ - 4, 5, 6, 6, 5, 7, - - /* Left */ - 8, 9, 10, 10, 9, 11, - - /* Right */ - 12, 13, 14, 14, 13, 15, - - /* Top */ - 16, 17, 18, 18, 17, 19, - - /* Bottom */ - 20, 21, 22, 22, 21, 23 - }; - - globalGraphical.material_box = efl_add(EVAS_CANVAS3D_MATERIAL_CLASS, globalGraphical.evas); - - evas_canvas3d_material_enable_set(globalGraphical.material_box, EVAS_CANVAS3D_MATERIAL_ATTRIB_AMBIENT, EINA_TRUE); - evas_canvas3d_material_enable_set(globalGraphical.material_box, EVAS_CANVAS3D_MATERIAL_ATTRIB_DIFFUSE, EINA_TRUE); - evas_canvas3d_material_enable_set(globalGraphical.material_box, EVAS_CANVAS3D_MATERIAL_ATTRIB_SPECULAR, EINA_TRUE); - evas_canvas3d_material_color_set(globalGraphical.material_box, EVAS_CANVAS3D_MATERIAL_ATTRIB_AMBIENT, 0.2, 0.2, 0.2, 1.0); - evas_canvas3d_material_color_set(globalGraphical.material_box, EVAS_CANVAS3D_MATERIAL_ATTRIB_DIFFUSE, 0.8, 0.8, 0.8, 1.0); - evas_canvas3d_material_color_set(globalGraphical.material_box, EVAS_CANVAS3D_MATERIAL_ATTRIB_SPECULAR, 1.0, 1.0, 1.0, 1.0); - evas_canvas3d_material_shininess_set(globalGraphical.material_box, 100.0); - - /* Setup mesh. */ - globalGraphical.mesh_box = efl_add(EVAS_CANVAS3D_MESH_CLASS, globalGraphical.evas); - evas_canvas3d_mesh_vertex_count_set(globalGraphical.mesh_box, 24); - evas_canvas3d_mesh_frame_add(globalGraphical.mesh_box, 0); - evas_canvas3d_mesh_frame_vertex_data_copy_set(globalGraphical.mesh_box, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION, 12 * sizeof(float), &cube_vertices[ 0]); - evas_canvas3d_mesh_frame_vertex_data_copy_set(globalGraphical.mesh_box, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_NORMAL, 12 * sizeof(float), &cube_vertices[ 3]); - evas_canvas3d_mesh_frame_vertex_data_copy_set(globalGraphical.mesh_box, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_COLOR, 12 * sizeof(float), &cube_vertices[ 6]); - evas_canvas3d_mesh_frame_vertex_data_copy_set(globalGraphical.mesh_box, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD, 12 * sizeof(float), &cube_vertices[10]); - evas_canvas3d_mesh_index_data_copy_set(globalGraphical.mesh_box, EVAS_CANVAS3D_INDEX_FORMAT_UNSIGNED_SHORT, 36, &cube_indices[0]); - evas_canvas3d_mesh_vertex_assembly_set(globalGraphical.mesh_box, EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLES); - evas_canvas3d_mesh_shader_mode_set(globalGraphical.mesh_box, EVAS_CANVAS3D_SHADER_MODE_PHONG); - evas_canvas3d_mesh_frame_material_set(globalGraphical.mesh_box, 0, globalGraphical.material_box); - - globalGraphical.mesh_nodebox = - efl_add(EVAS_CANVAS3D_NODE_CLASS, globalGraphical.evas, evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH), evas_canvas3d_node_position_set(efl_added, 0, -30.0, 0.0)); - evas_canvas3d_node_member_add(globalGraphical.root_node, globalGraphical.mesh_nodebox); - evas_canvas3d_node_mesh_add(globalGraphical.mesh_nodebox, globalGraphical.mesh_box); -} -static void -_change_scene_setup() -{ - Eo *node = NULL, *m = NULL; - Eina_List *l = NULL; - int i = 0; - int quantity = (globalGraphical.count + 1) * (globalGraphical.count + 1); - evas_canvas3d_camera_projection_perspective_set(globalGraphical.camera, globalGraphical.angle, 1.0, 2.0, 1000); - - EINA_LIST_FOREACH (globalGraphical.list_nodes, l, node) - { - evas_canvas3d_node_member_del(globalGraphical.root_node, node); - globalGraphical.list_nodes = eina_list_remove(globalGraphical.list_nodes, node); - /*efl_del(node);Unless evas_canvas3d_destructors work properly*/ - } - eina_list_free(globalGraphical.list_nodes); - eina_list_free(l); - - - EINA_LIST_FOREACH (globalGraphical.list_meshes, l, m) - { - globalGraphical.list_meshes = eina_list_remove(globalGraphical.list_meshes, m); - /*efl_del(m); Unless evas_canvas3d_destructors work properly*/ - } - eina_list_free(globalGraphical.list_meshes); - eina_list_free(l); - - /* Add the mesh with target precision */ - _sphere_init(globalGraphical.precision); - for (i = 0; i < quantity; i++) - { - globalGraphical.mesh = efl_add(EVAS_CANVAS3D_MESH_CLASS, globalGraphical.evas); - if (!globalGraphical.model_path) - { - evas_canvas3d_mesh_vertex_count_set(globalGraphical.mesh, globalGraphical.vertex_count); - evas_canvas3d_mesh_frame_add(globalGraphical.mesh, 0); - evas_canvas3d_mesh_frame_vertex_data_copy_set(globalGraphical.mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION, sizeof(vertex), &globalGraphical.vertices[0].position); - evas_canvas3d_mesh_frame_vertex_data_copy_set(globalGraphical.mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_NORMAL, sizeof(vertex), &globalGraphical.vertices[0].normal); - evas_canvas3d_mesh_frame_vertex_data_copy_set(globalGraphical.mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_TANGENT, sizeof(vertex), &globalGraphical.vertices[0].tangent); - evas_canvas3d_mesh_frame_vertex_data_copy_set(globalGraphical.mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_COLOR, sizeof(vertex), &globalGraphical.vertices[0].color); - evas_canvas3d_mesh_frame_vertex_data_copy_set(globalGraphical.mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD, sizeof(vertex), &globalGraphical.vertices[0].texcoord); - evas_canvas3d_mesh_index_data_copy_set(globalGraphical.mesh, EVAS_CANVAS3D_INDEX_FORMAT_UNSIGNED_SHORT, globalGraphical.index_count, &globalGraphical.indices[0]); - evas_canvas3d_mesh_vertex_assembly_set(globalGraphical.mesh, EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLES); - evas_canvas3d_mesh_shader_mode_set(globalGraphical.mesh, EVAS_CANVAS3D_SHADER_MODE_PHONG); - } - else - { - efl_file_simple_load(globalGraphical.mesh, globalGraphical.model_path, NULL); - evas_canvas3d_mesh_frame_material_set(globalGraphical.mesh, 0, globalGraphical.material); - evas_canvas3d_mesh_shader_mode_set(globalGraphical.mesh, EVAS_CANVAS3D_SHADER_MODE_PHONG); - } - - if (globalGraphical.flags.fog_enable) - { - evas_canvas3d_mesh_fog_enable_set(globalGraphical.mesh, EINA_TRUE); - evas_canvas3d_mesh_fog_color_set(globalGraphical.mesh, FOG_COLOR, FOG_FACTOR); - } - else - { - evas_canvas3d_mesh_fog_enable_set(globalGraphical.mesh, EINA_FALSE); - } - if (globalGraphical.flags.colorpick_enable) - evas_canvas3d_mesh_color_pick_enable_set(globalGraphical.mesh, EINA_TRUE); - else - evas_canvas3d_mesh_color_pick_enable_set(globalGraphical.mesh, EINA_FALSE); - - if (globalGraphical.flags.blend_enable) - { - evas_canvas3d_mesh_blending_enable_set(globalGraphical.mesh, EINA_TRUE); - evas_canvas3d_mesh_blending_func_set(globalGraphical.mesh, EVAS_CANVAS3D_BLEND_FUNC_SRC_ALPHA, EVAS_CANVAS3D_BLEND_FUNC_ONE_MINUS_SRC_ALPHA); - } - else - evas_canvas3d_mesh_blending_enable_set(globalGraphical.mesh, EINA_FALSE); - - evas_canvas3d_mesh_frame_material_set(globalGraphical.mesh, 0, globalGraphical.material); - globalGraphical.list_meshes = eina_list_append(globalGraphical.list_meshes, globalGraphical.mesh); - } - - /*Add target count nodes*/ - _sphere_count(globalGraphical.count, 0.2); - for (i = 0; i < quantity; i++) - { - globalGraphical.mesh_node = - efl_add(EVAS_CANVAS3D_NODE_CLASS, globalGraphical.evas, evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH), evas_canvas3d_node_position_set(efl_added, globalGraphical.places[i].position.x * 20, globalGraphical.places[i].position.y * 20, globalGraphical.places[i].position.z * 20)); - if (globalGraphical.model_path) - evas_canvas3d_node_scale_set(globalGraphical.mesh_node, 0.2, 0.2, 0.2); - evas_canvas3d_node_member_add(globalGraphical.root_node, globalGraphical.mesh_node); - evas_canvas3d_node_mesh_add(globalGraphical.mesh_node, (Eo*)eina_list_nth(globalGraphical.list_meshes, i)); - globalGraphical.list_nodes = eina_list_append(globalGraphical.list_nodes, globalGraphical.mesh_node); - } - - - if (!globalGraphical.flags.fps_enable) - ecore_animator_frametime_set(1.0 / (globalGraphical.speed)); - else - ecore_animator_frametime_set(0.0001); - - if (globalGraphical.flags.shadow_enable) - evas_canvas3d_scene_shadows_enable_set(globalGraphical.scene, EINA_TRUE); - else - evas_canvas3d_scene_shadows_enable_set(globalGraphical.scene, EINA_FALSE); - - if (globalGraphical.flags.colorpick_enable) - { - evas_canvas3d_scene_color_pick_enable_set(globalGraphical.scene, EINA_TRUE); - } - else - evas_canvas3d_scene_color_pick_enable_set(globalGraphical.scene, EINA_FALSE); -} - -static void -_init_scene(Evas_Object *img) -{ - int i, x, y, w, h; - int quantity = (globalGraphical.count + 1) * (globalGraphical.count + 1); - /*Allocate memory - eina_mempool*/ - - /* Add a scene object .*/ - globalGraphical.scene = efl_add(EVAS_CANVAS3D_SCENE_CLASS, globalGraphical.evas); - - /* Add the root node for the scene. */ - globalGraphical.root_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, globalGraphical.evas, evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE)); - - /* Add the camera. */ - globalGraphical.camera = efl_add(EVAS_CANVAS3D_CAMERA_CLASS, globalGraphical.evas); - evas_canvas3d_camera_projection_perspective_set(globalGraphical.camera, globalGraphical.angle, 1.0, 2.0, 1000.0); - - globalGraphical.camera_node = - efl_add(EVAS_CANVAS3D_NODE_CLASS, globalGraphical.evas, evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA)); - evas_canvas3d_node_camera_set(globalGraphical.camera_node, globalGraphical.camera); - evas_canvas3d_node_position_set(globalGraphical.camera_node, 0.0, 0.0, 25.0); - evas_canvas3d_node_look_at_set(globalGraphical.camera_node, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 1.0, 0.0); - evas_canvas3d_node_member_add(globalGraphical.root_node, globalGraphical.camera_node); - - globalGraphical.light = efl_add(EVAS_CANVAS3D_LIGHT_CLASS, globalGraphical.evas); - evas_canvas3d_light_ambient_set(globalGraphical.light, 1.0, 1.0, 1.0, 1.0); - evas_canvas3d_light_diffuse_set(globalGraphical.light, 1.0, 1.0, 1.0, 1.0); - evas_canvas3d_light_specular_set(globalGraphical.light, 1.0, 1.0, 1.0, 1.0); - evas_canvas3d_light_projection_perspective_set(globalGraphical.light, globalGraphical.angle / 5, 1.0, 1.0, 1000.0); - evas_canvas3d_light_spot_cutoff_set(globalGraphical.light, globalGraphical.angle / 15); - - globalGraphical.light_node = - efl_add(EVAS_CANVAS3D_NODE_CLASS, globalGraphical.evas, evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT)); - evas_canvas3d_node_light_set(globalGraphical.light_node, globalGraphical.light); - evas_canvas3d_node_position_set(globalGraphical.light_node, 0.0, 100.0, 1.0); - evas_canvas3d_node_look_at_set(globalGraphical.light_node, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 1.0, 0.0); - evas_canvas3d_node_member_add(globalGraphical.root_node, globalGraphical.light_node); - - - globalGraphical.material = efl_add(EVAS_CANVAS3D_MATERIAL_CLASS, globalGraphical.evas); - globalGraphical.texture = efl_add(EVAS_CANVAS3D_TEXTURE_CLASS, globalGraphical.evas); - efl_file_simple_load(globalGraphical.texture, "target_texture.png", NULL); - evas_canvas3d_texture_filter_set(globalGraphical.texture, EVAS_CANVAS3D_TEXTURE_FILTER_LINEAR, EVAS_CANVAS3D_TEXTURE_FILTER_LINEAR); - evas_canvas3d_texture_wrap_set(globalGraphical.texture, EVAS_CANVAS3D_WRAP_MODE_REPEAT, EVAS_CANVAS3D_WRAP_MODE_REPEAT); - evas_canvas3d_material_texture_set(globalGraphical.material, EVAS_CANVAS3D_MATERIAL_ATTRIB_DIFFUSE, globalGraphical.texture); - evas_canvas3d_material_texture_set(globalGraphical.material, EVAS_CANVAS3D_MATERIAL_ATTRIB_AMBIENT, globalGraphical.texture); - evas_canvas3d_material_enable_set(globalGraphical.material, EVAS_CANVAS3D_MATERIAL_ATTRIB_AMBIENT, EINA_TRUE); - evas_canvas3d_material_enable_set(globalGraphical.material, EVAS_CANVAS3D_MATERIAL_ATTRIB_DIFFUSE, EINA_TRUE); - evas_canvas3d_material_enable_set(globalGraphical.material, EVAS_CANVAS3D_MATERIAL_ATTRIB_SPECULAR, EINA_TRUE); - evas_canvas3d_material_enable_set(globalGraphical.material, EVAS_CANVAS3D_MATERIAL_ATTRIB_NORMAL, EINA_TRUE); - evas_canvas3d_material_color_set(globalGraphical.material, EVAS_CANVAS3D_MATERIAL_ATTRIB_AMBIENT, 1.0, 0.2, 0.2, 0.2); - evas_canvas3d_material_color_set(globalGraphical.material, EVAS_CANVAS3D_MATERIAL_ATTRIB_DIFFUSE, 1.0, 0.0, 0.0, 0.2); - evas_canvas3d_material_color_set(globalGraphical.material, EVAS_CANVAS3D_MATERIAL_ATTRIB_SPECULAR, 1.0, 1.0, 1.0, 0.2); - /* Add the mesh with target precision */ - _sphere_init(globalGraphical.precision); - - for (i = 0; i < quantity; i++) - { - globalGraphical.mesh = efl_add(EVAS_CANVAS3D_MESH_CLASS, globalGraphical.evas); - if (!globalGraphical.model_path) - { - evas_canvas3d_mesh_vertex_count_set(globalGraphical.mesh, globalGraphical.vertex_count); - evas_canvas3d_mesh_frame_add(globalGraphical.mesh, 0); - evas_canvas3d_mesh_frame_vertex_data_copy_set(globalGraphical.mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION, sizeof(vertex), &globalGraphical.vertices[0].position); - evas_canvas3d_mesh_frame_vertex_data_copy_set(globalGraphical.mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_NORMAL, sizeof(vertex), &globalGraphical.vertices[0].normal); - evas_canvas3d_mesh_frame_vertex_data_copy_set(globalGraphical.mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_TANGENT, sizeof(vertex), &globalGraphical.vertices[0].tangent); - evas_canvas3d_mesh_frame_vertex_data_copy_set(globalGraphical.mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_COLOR, sizeof(vertex), &globalGraphical.vertices[0].color); - evas_canvas3d_mesh_frame_vertex_data_copy_set(globalGraphical.mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD, sizeof(vertex), &globalGraphical.vertices[0].texcoord); - evas_canvas3d_mesh_index_data_copy_set(globalGraphical.mesh, EVAS_CANVAS3D_INDEX_FORMAT_UNSIGNED_SHORT, globalGraphical.index_count, &globalGraphical.indices[0]); - evas_canvas3d_mesh_vertex_assembly_set(globalGraphical.mesh, EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLES); - evas_canvas3d_mesh_shader_mode_set(globalGraphical.mesh, EVAS_CANVAS3D_SHADER_MODE_PHONG); - } - else - { - efl_file_simple_load(globalGraphical.mesh, globalGraphical.model_path, NULL); - evas_canvas3d_mesh_frame_material_set(globalGraphical.mesh, 0, globalGraphical.material); - evas_canvas3d_mesh_shader_mode_set(globalGraphical.mesh, EVAS_CANVAS3D_SHADER_MODE_PHONG); - } - evas_canvas3d_mesh_frame_material_set(globalGraphical.mesh, 0, globalGraphical.material); - globalGraphical.list_meshes = eina_list_append(globalGraphical.list_meshes, globalGraphical.mesh); - } - - /*Add target count meshes*/ - _sphere_count(globalGraphical.count, 0.2); - - for (i = 0; i < quantity; i++) - { - globalGraphical.mesh_node = - efl_add(EVAS_CANVAS3D_NODE_CLASS, globalGraphical.evas, evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH), evas_canvas3d_node_position_set(efl_added, globalGraphical.places[i].position.x * 20, globalGraphical.places[i].position.y * 20, globalGraphical.places[i].position.z * 20)); - if (globalGraphical.model_path) - evas_canvas3d_node_scale_set(globalGraphical.mesh_node, 0.2, 0.2, 0.2); - evas_canvas3d_node_member_add(globalGraphical.root_node, globalGraphical.mesh_node); - evas_canvas3d_node_mesh_add(globalGraphical.mesh_node, (Eo*)eina_list_nth(globalGraphical.list_meshes, i)); - globalGraphical.list_nodes = eina_list_append(globalGraphical.list_nodes, globalGraphical.mesh_node); - } - - _init_bounding(); - evas_object_geometry_get(img, &x, &y, &w, &h); - evas_canvas3d_scene_root_node_set(globalGraphical.scene, globalGraphical.root_node); - evas_canvas3d_scene_camera_node_set(globalGraphical.scene, globalGraphical.camera_node); - evas_canvas3d_scene_size_set(globalGraphical.scene, w, h); - - ecore_animator_frametime_set(1.0 / (globalGraphical.speed)); -} - -static Eina_Bool -_xml_attr_data(void *data EINA_UNUSED, const char *key, const char *value) -{ - char *format = NULL, *tmp = NULL, *a = NULL; - int i; - - if (!strcmp("path", key)) - { - if (!strcmp("none", value)) - { - globalGraphical.model_path = NULL; - } - else - { - globalGraphical.model_path = strdup(value);/*Don't forget update UI*/ - tmp = strdup(globalGraphical.model_path); - a = strrchr(tmp,'.'); - if (!a) - { - free(tmp); - return EINA_FALSE; - } - format = malloc(sizeof (char) * (strlen(a) - 1)); - for (i = 0; i <= (int)strlen(a) - 1; i++) - format[i] = a[i + 1]; - if (strcmp(format, "md2") && strcmp(format, "obj") && strcmp(format, "ply")) - { - printf("\nUnsupported fromat file\n"); - globalGraphical.model_path = NULL; - } - free(format); - free(tmp); - } - } - else if (!strcmp("count", key)) - globalGraphical.count = atoi(value); - else if (!strcmp("speed", key)) - globalGraphical.speed = atoi(value); - else if (!strcmp("precision", key)) - globalGraphical.precision = atoi(value); - else if (!strcmp("angle", key)) - globalGraphical.angle = atoi(value); - - return EINA_TRUE; -} - -static Eina_Bool -_xml_get_data(void *data EINA_UNUSED, Eina_Simple_XML_Type type, const char *content, - unsigned offset EINA_UNUSED, unsigned length) -{ - char str[512]; - switch (type) - { - case EINA_SIMPLE_XML_OPEN: - { - if (!strncmp("modelpath", content, strlen("modelpath"))) - { - const char *tags = eina_simple_xml_tag_attributes_find(content, length); - eina_simple_xml_attributes_parse(tags, length - (tags - content), _xml_attr_data, str); - } - else if (!strncmp("modelcount", content, strlen("modelcount"))) - { - const char *tags = eina_simple_xml_tag_attributes_find(content, length); - eina_simple_xml_attributes_parse(tags, length - (tags - content), _xml_attr_data, str); - } - else if (!strncmp("animspeed", content, strlen("animspeed"))) - { - const char *tags = eina_simple_xml_tag_attributes_find(content, length); - eina_simple_xml_attributes_parse(tags, length - (tags - content), _xml_attr_data, str); - } - else if (!strncmp("sphereprecision", content, strlen("sphereprecision"))) - { - const char *tags = eina_simple_xml_tag_attributes_find(content, length); - eina_simple_xml_attributes_parse(tags, length - (tags - content), _xml_attr_data, str); - } - else if (!strncmp("perspective", content, strlen("perspective"))) - { - const char *tags = eina_simple_xml_tag_attributes_find(content, length); - eina_simple_xml_attributes_parse(tags, length - (tags - content), _xml_attr_data, str); - } - } - default: - break; - } - - return EINA_TRUE; -} - -static void _init_graphical() -{ - Eina_File *config = NULL; - char *buffer = NULL; - config = eina_file_open("initial_config.xml", EINA_FALSE); - /*Set default values*/ - globalGraphical.count = 1; - globalGraphical.speed = 10; - globalGraphical.precision = 100; - globalGraphical.angle = 120; - globalGraphical.img = NULL; - globalGraphical.init_scene = _init_scene; - globalGraphical.change_scene_setup = _change_scene_setup; - globalGraphical.flags.shadow_enable = EINA_FALSE; - globalGraphical.flags.fog_enable = EINA_FALSE; - globalGraphical.flags.colorpick_enable = EINA_FALSE; - globalGraphical.flags.blend_enable = EINA_FALSE; - globalGraphical.flags.fps_enable = EINA_FALSE; - globalGraphical.model_path = NULL; - - if (!config) - printf("Could not open initial_config.xml, count=4, speed=10, precision=100, perspective=120"); - else - { - buffer = (char*)(eina_file_map_all(config, EINA_FILE_RANDOM)); - eina_simple_xml_parse(buffer, eina_file_size_get(config), EINA_TRUE, _xml_get_data, NULL); - eina_file_close(config); - } -} -Evas_Object * -init_graphical_window(Evas_Object *img) -{ - _init_graphical(); - globalGraphical.evas = evas_object_evas_get(img); - _init_scene(img); - efl_canvas_scene3d_set(img, globalGraphical.scene); - - return img; -} - diff --git a/src/examples/elementary/performance/graphical_struct.h b/src/examples/elementary/performance/graphical_struct.h deleted file mode 100644 index a38806d94f..0000000000 --- a/src/examples/elementary/performance/graphical_struct.h +++ /dev/null @@ -1,90 +0,0 @@ -#ifndef GRAPHICAL_STRUCT_H -#define GRAPHICAL_STRUCT_H - -typedef struct _vec4 -{ - float x; - float y; - float z; - float w; -} vec4; - -typedef struct _vec3 -{ - float x; - float y; - float z; -} vec3; - -typedef struct _vec2 -{ - float x; - float y; -} vec2; -typedef struct _vertex -{ - vec3 position; - vec3 normal; - vec3 tangent; - vec4 color; - vec3 texcoord; -} vertex; - -typedef struct _place -{ - vec3 position; -} place; - -typedef struct _Flags_Change -{ - Eina_Bool fog_enable; - Eina_Bool shadow_enable; - Eina_Bool colorpick_enable; - Eina_Bool blend_enable; - Eina_Bool fps_enable; -} Changes; - -typedef struct _Graphical -{ - Evas *evas; - Evas_Object *img; - Eo *scene; - Eo *root_node; - Eo *light_node; - Eo *light; - Eo *camera_node; - Eo *camera; - Eo *mesh_node; - Eo *mesh; - Eo *material; - Eo *material_box; - Eo *texture; - Eo *mesh_box; - Eo *mesh_nodebox; - Eo *texture_box; - - Eina_List *list_nodes; - Eina_List *list_meshes; - - const char *model_path; - - void (*init_scene)(); - void (*change_scene_setup)(); - - vertex *vertices; - place *places; - unsigned short *indices; - int index_count; - int vertex_count; - - int count; - int speed; - int precision; - int angle; - - Changes flags; - -} Graphical; - -extern Graphical globalGraphical; -#endif diff --git a/src/examples/elementary/performance/initial_config.xml b/src/examples/elementary/performance/initial_config.xml deleted file mode 100644 index b058b60aa8..0000000000 --- a/src/examples/elementary/performance/initial_config.xml +++ /dev/null @@ -1,11 +0,0 @@ -<!--Use it for initial loading --> -<?xml version="1.0" encoding="UTF-8"?> -<approot> - <defvalues> - <modelpath path="none"></modelpath> - <modelcount count="2"></modelcount> - <animspeed speed="100"></animspeed> - <sphereprecision precision="10"></sphereprecision> - <perspective angle="120"></perspective> - </defvalues> -</approot> diff --git a/src/examples/elementary/performance/layout.edc b/src/examples/elementary/performance/layout.edc deleted file mode 100644 index 52430d4018..0000000000 --- a/src/examples/elementary/performance/layout.edc +++ /dev/null @@ -1,170 +0,0 @@ -collections { - group { name: "new/layout/0"; - broadcast_signal: 0; - parts { - part { name: "area.bg"; - type: SPACER; - description { state: "default" 0; - align: 0.0 0.0; - min: 1000 600; - } - } - part { name: "area.controls"; - type: SPACER; - description { state: "default" 0; - align: 0.0 0.0; - min: 800 110; - max: -1 110; - rel1 { - to: "area.bg"; - } - rel2 { - to: "area.bg"; - } - } - } - part { name: "area.content"; - type: SPACER; - description { state: "default" 0; - align: 0.0 0.0; - rel1 { - to: "area.bg"; - } - rel2 { - to: "area.bg"; - } - } - } - part { name: "padding.controls.rel1"; - type: SPACER; - description { state: "default" 0; - align: 0 0; - max: 5 5; - rel1 { - to: "area.controls"; - } - rel2 { - to: "area.controls"; - } - } - } - part { name: "padding.controls.rel2"; - type: SPACER; - description { state: "default" 0; - align: 1 1; - min: 5 5; - max: 5 5; - fixed: 1 1; - rel1 { - to: "area.controls"; - } - rel2 { - relative: 1 0; - to: "area.content"; - } - } - } - part { name: "swallow.content"; - type: SWALLOW; - description { state: "default" 0; - align: 0 0; - min: 800 600; - rel1 { - to: "area.content"; - } - rel2 { - to: "area.content"; - } - } - } - part { name: "swallow.btn.startexit"; - type: SWALLOW; - description { state: "default" 0; - align: 0 0; - min: 800 50; - max: -1 50; - fixed: 1 1; - rel1 { - relative: 1 1; - to: "padding.controls.rel1"; - } - rel2 { - relative: 0 0; - offset: 0 0; - to: "padding.controls.rel2"; - } - } - } - part { name: "swallow.controls.btn"; - type: SWALLOW; - description { state: "default" 0; - align: 0 0; - min: 800 20; - max: -1 20; - fixed: 1 1; - rel1 { - relative: 0 1; - to: "padding1"; - } - rel2 { - relative: 0 0; - to: "padding.controls.rel2"; - } - } - } - part { name: "new_features"; - type: SWALLOW; - description { state: "default" 0; - align: 0 0; - min: 800 20; - max: -1 20; - fixed: 1 1; - rel1 { - relative: 0 1; - offset: -1 -1; - to: "padding5"; - } - rel2 { - relative: 0 0; - to: "padding.controls.rel2"; - } - } - } - part { name: "padding1"; - type: SPACER; - description { state: "default" 0; - align: 0 0; - min: 0 5; - max: -1 5; - fixed: 1 1; - rel1 { - relative: 1 1; - to_x: "padding.controls.rel1"; - to_y: "swallow.btn.startexit"; - } - rel2 { - relative: 0 0; - to: "padding.controls.rel2"; - } - } - } - part { name: "padding5"; - type: SPACER; - description { state: "default" 0; - align: 0 0; - min: 0 5; - max: -1 5; - fixed: 1 1; - rel1 { - relative: 0 1; - to: "swallow.controls.btn"; - } - rel2 { - relative: 0 1; - to: "padding.controls.rel2"; - } - } - } - } - } -} diff --git a/src/examples/elementary/performance/meson.build b/src/examples/elementary/performance/meson.build deleted file mode 100644 index cd209955a8..0000000000 --- a/src/examples/elementary/performance/meson.build +++ /dev/null @@ -1,31 +0,0 @@ -examples = [ - 'performance.c', - 'camera_light.c', - 'graphical.c', -] - -edc_files = [ - 'layout.edc' -] - -themes = [] - -foreach edc_file : edc_files - themes += custom_target('edje_cc_' + edc_file, - depends : edje_depends, - input : edc_file, - output : '@BASENAME@.edj', - command : edje_cc_exe + ['-beta', - '-id', meson.current_source_dir(), - '-fd', meson.current_source_dir(), - '-sd', meson.current_source_dir(), - '-vd', meson.current_source_dir(), - '-dd', meson.current_source_dir(), - '-md', meson.current_source_dir(), - '-td', meson.current_source_dir(), - '@INPUT@', '@OUTPUT@'], - ) -endforeach - -executable(example, [examples] + themes, dependencies: [elementary, ecore]) - diff --git a/src/examples/elementary/performance/performance.c b/src/examples/elementary/performance/performance.c deleted file mode 100644 index 75f330ccc4..0000000000 --- a/src/examples/elementary/performance/performance.c +++ /dev/null @@ -1,953 +0,0 @@ -/** - * Example for testing performance of Evas 3D library - * - * Program should be runned with 4 parameters: - * 1 - count parameter (NP) - * 2 - speed parameter (SP) - * 3 - precision parameter (PP) - * 4 - camera parameter (CP) - * - * NP sets number of spheres. Count of spheres is (NP+1)^2. - * SP sets speed of rotation. One revolution of root node takes 1200/SP seconds. It is count of calculation of position per second. - * PP sets number of sphere's vertices. Count of vertices is (NP+1)^2. - * CP sets camera's perspective angle in degrees. - * - * Right click of mouse show/hide navigation panel - * - * @verbatim - * Just use script ./run with key -a: enable automation testing, -l: change which only in local repository, -p: disable navigation panel - * @endverbatim - */ - -/*enable automation test*/ -#ifdef ENABLE_ATPORT - #include "at_port.h" -#endif - -#include <math.h> -#include <stdlib.h> -#include <time.h> -#include <stdio.h> -#include <stdlib.h> - -#ifndef EFL_BETA_API_SUPPORT -# define EFL_BETA_API_SUPPORT -#endif - -#include <Eo.h> -#include <Evas.h> -#include <Ecore.h> -#include <Ecore_Evas.h> -#include <Elementary.h> - -#include "Tools.h" - -#include "graphical_struct.h" - -#define WIDTH 1000 -#define HEIGHT 600 - -Graphical globalGraphical; - -/*Variable for fps*/ -int fps_frames = 0; - -Eina_Slstr * _value_int_to_char(int value, const char *description) -{ - if (description) - return eina_slstr_printf("%s %d", description, value); - return eina_slstr_printf("%d", value); -} - -static Eina_Bool -_timer_update(void *data EINA_UNUSED) -{ - printf(" frame rate = %f fps\n", fps_frames / 10.0); - fps_frames = 0; - return EINA_TRUE; -} -static Eina_Bool -_animate_scene(void *data) -{ - Eina_List *l; - Evas_Canvas3D_Node *node; - - static float angle = 0.0f; - angle += 0.03; - - evas_canvas3d_node_look_at_set((Evas_Canvas3D_Node *)data, EVAS_CANVAS3D_SPACE_PARENT, 8 * sin(angle), 0.0, 8 * cos(angle), EVAS_CANVAS3D_SPACE_PARENT, 0.0, 1.0, 0.0); - - EINA_LIST_FOREACH (globalGraphical.list_nodes, l, node) - { - evas_canvas3d_node_orientation_angle_axis_set(node, 10 * angle, 1.0, 1.0, 0.0); - } - - /* Rotate */ - if (angle > 360.0) angle -= 360.0f; - - fps_frames++; - - return EINA_TRUE; -} - - -static void -_on_mouse_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, - void *event_info) -{ - Evas_Event_Mouse_Down *ev = event_info; - Evas_Coord x, y, w, h; - Evas_Coord obj_x, obj_y; - int scene_w, scene_h; - Evas_Real scene_x, scene_y; - Evas_Real s, t; - Evas_Canvas3D_Node *n; - Evas_Canvas3D_Mesh *m; - Eina_Bool pick; - clock_t time; - float diff_sec; - if (ev->button == 3) - { - if (evas_object_visible_get((Evas_Object*)data)) - evas_object_hide((Evas_Object*)data); - else - evas_object_show((Evas_Object*)data); - } - else - { - evas_object_geometry_get(obj, &x, &y, &w, &h); - - obj_x = ev->canvas.x - x; - obj_y = ev->canvas.y - y; - - evas_canvas3d_scene_size_get(globalGraphical.scene, &scene_w, &scene_h); - - scene_x = obj_x * scene_w / (Evas_Real)w; - scene_y = obj_y * scene_h / (Evas_Real)h; - - time = clock(); - if (globalGraphical.flags.colorpick_enable) - { - pick = evas_canvas3d_scene_color_pick_enable_set(globalGraphical.scene, EINA_TRUE); - pick = evas_canvas3d_scene_pick(globalGraphical.scene, ev->canvas.x, ev->canvas.y, &n, &m, NULL, NULL); - time = clock() - time; - diff_sec = ((float)time) / CLOCKS_PER_SEC / 10; - if (pick) - { - printf("Boom! Color pick time expended for pick: %2.7f \n", diff_sec); - if (n != globalGraphical.mesh_nodebox) - evas_canvas3d_node_scale_set(n, 0.5, 0.5, 0.5); - } - } - else - { - pick = evas_canvas3d_scene_color_pick_enable_set(globalGraphical.scene, EINA_FALSE); - pick = evas_canvas3d_scene_pick(globalGraphical.scene, scene_x, scene_y, &n, &m, &s, &t); - time = clock() - time; - diff_sec = ((float)time) / CLOCKS_PER_SEC / 10; - if (pick) - { - printf("Boom! Geometry pick time expended for pick: %2.7f, TexCoord (%f, %f)\n", diff_sec, s, t); - if (n != globalGraphical.mesh_nodebox) - evas_canvas3d_node_scale_set(n, 0.5, 0.5, 0.5); - } - } - } -} -static void -_btnstart_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - globalGraphical.change_scene_setup(); -} - -static void -_btnexit_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - elm_exit(); -} - -static void -_btnstop_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) -{ - const char *status = NULL; - status = elm_object_text_get(obj); - if (status != NULL && !strcmp(status, "Stop")) - { - elm_object_text_set(obj, "Start"); - ecore_animator_freeze((Ecore_Animator *)data); - } - else - { - elm_object_text_set(obj, "Stop"); - ecore_animator_thaw((Ecore_Animator *)data); - } -} -static void -_node_orientation_change_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - Elm_Object_Item *it; - Eina_List *l; - Evas_Canvas3D_Node *node; - it = elm_flipselector_selected_item_get((Evas_Object*)data); - const char *str = elm_object_item_text_get(it); - if (str && !strcmp(str, "root node")) - evas_canvas3d_node_orientation_angle_axis_set(globalGraphical.root_node, 15, 1.0, 1.0, 1.0); - else - { - EINA_LIST_FOREACH (globalGraphical.list_nodes, l, node) - { - evas_canvas3d_node_orientation_angle_axis_set((Eo*)node, 15, 1.0, 1.0, 1.0); - } - } -} -static void -_node_position_change_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - Elm_Object_Item *it; - Eina_List *l; - Evas_Canvas3D_Node *node; - it = elm_flipselector_selected_item_get((Evas_Object*)data); - const char *str = elm_object_item_text_get(it); - if (str && !strcmp(str, "root node")) - evas_canvas3d_node_position_set(globalGraphical.root_node, 10.0, 1.0, 1.0); - else - { - EINA_LIST_FOREACH (globalGraphical.list_nodes, l, node) - { - evas_canvas3d_node_position_set((Eo*)node, 1.0, 1.0, 1.0); - } - } -} -static void -_node_scale_change_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - Elm_Object_Item *it; - Eina_List *l; - Evas_Canvas3D_Node *node; - it = elm_flipselector_selected_item_get((Evas_Object*)data); - const char *str = elm_object_item_text_get(it); - if (str && !strcmp(str, "root node")) - evas_canvas3d_node_scale_set(globalGraphical.root_node, 1.0, 1.0, 1.0); - else - { - EINA_LIST_FOREACH (globalGraphical.list_nodes, l, node) - { - evas_canvas3d_node_scale_set((Eo*)node, 1.0, 1.0, 1.0); - } - } -} -static void -_countdec10_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - Eina_Slstr *buf; - int tmp; - - globalGraphical.count -= 10; - if (globalGraphical.count < 0) tmp = globalGraphical.count = 0; - else - tmp = ((globalGraphical.count + 1) * (globalGraphical.count + 1)); - - buf = _value_int_to_char(((tmp <= 1) ? 0 : tmp), "quantity:"); - elm_object_text_set((Evas_Object*)data, buf); -} - -static void -_countdec_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - Eina_Slstr *buf; - int tmp; - - globalGraphical.count--; - if (globalGraphical.count < 0) tmp = globalGraphical.count = 0; - else - tmp = ((globalGraphical.count + 1) * (globalGraphical.count + 1)); - buf = _value_int_to_char(((tmp <= 1) ? 0 : tmp), "quantity:"); - elm_object_text_set((Evas_Object*)data, buf); -} - -static void -_countinc_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - Eina_Slstr *buf; - - globalGraphical.count++; - - buf = _value_int_to_char(((globalGraphical.count + 1) * (globalGraphical.count + 1)), "quantity:"); - elm_object_text_set((Evas_Object*)data, buf); -} - -static void -_countinc10_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - Eina_Slstr *buf; - - globalGraphical.count += 10; - - buf = _value_int_to_char(((globalGraphical.count + 1) * (globalGraphical.count + 1)), "quantity:"); - elm_object_text_set((Evas_Object*)data, buf); -} - -static void -_speeddec10_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - Eina_Slstr *buf; - - globalGraphical.speed -= 10; - if (globalGraphical.speed <= 0) globalGraphical.speed = 10; - - buf = _value_int_to_char(globalGraphical.speed, "speed:"); - elm_object_text_set((Evas_Object*)data, buf); -} - -static void -_speeddec_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - Eina_Slstr *buf; - - globalGraphical.speed--; - if (globalGraphical.speed <= 0) globalGraphical.speed = 10; - - buf = _value_int_to_char(globalGraphical.speed, "speed:"); - elm_object_text_set((Evas_Object*)data, buf); -} - -static void -_speedinc_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - Eina_Slstr *buf; - - globalGraphical.speed++; - - buf = _value_int_to_char(globalGraphical.speed, "speed:"); - elm_object_text_set((Evas_Object*)data, buf); -} - -static void -_speedinc10_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - Eina_Slstr *buf; - - globalGraphical.speed += 10; - - buf = _value_int_to_char(globalGraphical.speed, "speed:"); - elm_object_text_set((Evas_Object*)data, buf); -} - -static void -_precisiondec10_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - Eina_Slstr *buf; - - globalGraphical.precision -= 10; - if (globalGraphical.precision <= 0) globalGraphical.precision = 10; - - buf = _value_int_to_char(globalGraphical.precision, "precision:"); - elm_object_text_set((Evas_Object*)data, buf); -} - -static void -_precisiondec_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - Eina_Slstr *buf; - - globalGraphical.precision--; - if (globalGraphical.precision <= 0) globalGraphical.precision = 10; - - buf = _value_int_to_char(globalGraphical.precision, "precision:"); - elm_object_text_set((Evas_Object*)data, buf); -} - -static void -_precisioninc_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - Eina_Slstr *buf; - - globalGraphical.precision++; - - buf = _value_int_to_char(globalGraphical.precision, "precision:"); - elm_object_text_set((Evas_Object*)data, buf); -} - -static void -_precisioninc10_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - Eina_Slstr *buf; - - globalGraphical.precision += 10; - - buf = _value_int_to_char(globalGraphical.precision, "precision:"); - elm_object_text_set((Evas_Object*)data, buf); -} - -static void -_angledec10_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - Eina_Slstr *buf; - - globalGraphical.angle -= 10; - if (globalGraphical.angle <= 0) globalGraphical.angle = 10; - - buf = _value_int_to_char(globalGraphical.angle, "angle:"); - elm_object_text_set((Evas_Object*)data, buf); -} - -static void -_angledec_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - Eina_Slstr *buf; - - globalGraphical.angle--; - if (globalGraphical.angle <= 0) globalGraphical.angle = 10; - - buf = _value_int_to_char(globalGraphical.angle, "angle:"); - elm_object_text_set((Evas_Object*)data, buf); -} - -static void -_angleinc_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - Eina_Slstr *buf; - - globalGraphical.angle++; - if (globalGraphical.angle >= 180) globalGraphical.angle = 180; - - buf = _value_int_to_char(globalGraphical.angle, "angle:"); - elm_object_text_set((Evas_Object*)data, buf); -} - -static void -_angleinc10_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - Eina_Slstr *buf; - - globalGraphical.angle += 10; - if (globalGraphical.angle >= 180) globalGraphical.angle = 180; - - buf = _value_int_to_char(globalGraphical.angle, "angle:"); - elm_object_text_set((Evas_Object*)data, buf); -} - -static void -_shadow_enable(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) -{ - if (elm_check_state_get(obj)) - globalGraphical.flags.shadow_enable = EINA_TRUE; - else - globalGraphical.flags.shadow_enable = EINA_FALSE; -} - -static void -_colorpick_enable(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) -{ - if (elm_check_state_get(obj)) - globalGraphical.flags.colorpick_enable = EINA_TRUE; - else - globalGraphical.flags.colorpick_enable = EINA_FALSE; -} - -static void -_fog_enable(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) -{ - if (elm_check_state_get(obj)) - globalGraphical.flags.fog_enable = EINA_TRUE; - else - globalGraphical.flags.fog_enable = EINA_FALSE; -} - -static void -_blend_enable(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) -{ - if (elm_check_state_get(obj)) - globalGraphical.flags.blend_enable = EINA_TRUE; - else - globalGraphical.flags.blend_enable = EINA_FALSE; -} - -static void -_cb_fps_enable(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) -{ - if (elm_check_state_get(obj)) - { - globalGraphical.flags.fps_enable = EINA_TRUE; - ecore_timer_thaw((Ecore_Timer *)data); - fps_frames = 0; - } - else - { - globalGraphical.flags.fps_enable = EINA_FALSE; - ecore_timer_freeze((Ecore_Timer *)data); - fps_frames = 0; - } -} - -static void -_load_mesh(void *data EINA_UNUSED, Evas_Object *obj, void *event_info) -{ - char *format = NULL, *a = NULL; - char name[FILENAME_MAX]; - int i = 0, j = 0; - if (event_info) - { - char *tmp = NULL; - tmp = strdup(event_info); - /*Get filename in backward*/ - for (i = strlen(tmp) - 1; i >= 0; i--, j++) - { - if (tmp[i] != '/') - name[j] = tmp[i]; - else - { - name[j] = '\0'; - break; - } - } - free(tmp); - tmp = NULL; - j = 0; - /*Reverse filename*/ - tmp = strdup(name); - for (i = strlen(tmp) - 1; i >= 0 ; i--, j++) - name[j] = tmp[i]; - - free(tmp); - free(a); - tmp = NULL; - a = NULL; - /*Get extension of file*/ - tmp = strdup(event_info); - a = strrchr(tmp,'.'); - if (!a) - { - free(tmp); - return; - } - format = malloc(sizeof (char) * (strlen(a) - 1)); - for (i = 0; i <= (int)strlen(a) - 1; i++) - format[i] = a[i + 1]; - if (!strcmp(format, "md2")) - { - globalGraphical.model_path = event_info; - elm_object_text_set(obj, name); - } - else if (!strcmp(format, "obj")) - { - globalGraphical.model_path = event_info; - elm_object_text_set(obj, name); - } - else if (!strcmp(format, "ply")) - { - globalGraphical.model_path = event_info; - elm_object_text_set(obj, name); - } - else - { - printf("\nUnsupported fromat file\n"); - globalGraphical.model_path = NULL; - elm_object_text_set(obj, "load"); - } - free(format); - free(tmp); - } - else - { - globalGraphical.model_path = NULL; - elm_object_text_set(obj, "load"); - } -} - -EAPI_MAIN - int elm_main(int argc, char **argv) -{ - Evas *evas = NULL; - Evas_Object *win = NULL, *bg = NULL, *image = NULL; - Ecore_Animator *timer = NULL; - Evas_Object *layout = NULL; - Evas_Object *btnstart = NULL, *btnexit = NULL, *btnstop = NULL; - Evas_Object *startexitbox = NULL,*testbox = NULL, *controlbox = NULL, *newfeaturesbox = NULL; - Evas_Object *countdec10 = NULL, *countinc = NULL, *countdec = NULL, *countinc10 = NULL; - Evas_Object *speeddec10 = NULL, *speedinc = NULL, *speeddec = NULL, *speedinc10 = NULL; - Evas_Object *precisiondec10 = NULL, *precisioninc = NULL, *precisiondec = NULL, *precisioninc10 = NULL; - Evas_Object *vcount = NULL, *vspeed = NULL, *vprecision = NULL, *vangle = NULL; - Evas_Object *angledec10 = NULL, *angleinc = NULL, *angledec = NULL, *angleinc10 = NULL; - Evas_Object *cb_shadow = NULL, *cb_colorpick = NULL, *cb_fog = NULL, *cb_blend = NULL, *cb_fps = NULL; - Evas_Object *fs_bt = NULL; - Evas_Object *navigation = NULL; - Evas_Object *fs_node = NULL, *bt_orientation = NULL, *bt_position = NULL, *bt_scale = NULL; - Ecore_Timer *fps_timer = NULL; - Eina_Slstr *buf; - -#ifdef ENABLE_ATPORT - at_port_h mf_at_port = NULL; -#endif - - if (!elm_init(argc, argv)) return 1; - - elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED); - win = elm_win_add(NULL, "3D Performance", ELM_WIN_BASIC); - evas_object_resize(win, WIDTH, HEIGHT); - elm_win_autodel_set(win, EINA_TRUE); - evas_object_show(win); - -#ifdef ENABLE_ATPORT - at_port_create(&(mf_at_port), win); - if(mf_at_port != NULL) - { - at_port_enable(mf_at_port); - } -#endif - - bg = elm_bg_add(win); - evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_bg_file_set(bg, "background.png", NULL); - elm_win_resize_object_add(win, bg); - evas_object_show(bg); - - layout = elm_layout_add(win); - evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_win_resize_object_add(win, layout); - elm_layout_file_set(layout, "layout.edj", "new/layout/0"); - evas_object_show(layout); - - startexitbox = elm_box_add(win); - elm_box_horizontal_set(startexitbox, EINA_TRUE); - elm_object_part_content_set(layout, "swallow.btn.startexit", startexitbox); - evas_object_size_hint_weight_set(startexitbox, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(startexitbox, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_box_homogeneous_set(startexitbox, EINA_TRUE); - evas_object_show(startexitbox); - - evas = evas_object_evas_get(win); - image = efl_add(EFL_CANVAS_SCENE3D_CLASS, evas); - - btnstart = elm_button_add(win); - elm_object_text_set(btnstart, "Apply"); - evas_object_size_hint_weight_set(btnstart, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(btnstart, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_box_pack_end(startexitbox, btnstart); - evas_object_show(btnstart); - evas_object_smart_callback_add(btnstart, "clicked", _btnstart_cb, image); - - testbox = elm_box_add(win); - elm_box_horizontal_set(testbox, EINA_TRUE); - elm_box_homogeneous_set(testbox, EINA_TRUE); - elm_box_pack_end(startexitbox, testbox); - evas_object_show(testbox); - - btnstop = elm_button_add(win); - elm_object_text_set( btnstop, "Stop"); - elm_box_pack_end(testbox, btnstop); - evas_object_size_hint_weight_set(btnstop, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(btnstop, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(btnstop); - - fs_node = elm_flipselector_add(win); - elm_box_pack_end(testbox, fs_node); - elm_flipselector_item_append(fs_node, "root node", NULL, NULL); - elm_flipselector_item_append(fs_node, "mesh node", NULL, NULL); - evas_object_size_hint_weight_set(btnstop, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(btnstop, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(fs_node); - - bt_orientation = elm_button_add(win); - elm_object_text_set(bt_orientation, "Orientation"); - elm_box_pack_end(testbox, bt_orientation); - evas_object_size_hint_weight_set(bt_orientation, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(bt_orientation, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(bt_orientation); - evas_object_smart_callback_add(bt_orientation, "clicked", _node_orientation_change_cb, fs_node); - - bt_position = elm_button_add(win); - elm_object_text_set(bt_position, "Position"); - elm_box_pack_end(testbox, bt_position); - evas_object_size_hint_weight_set(bt_position, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(bt_position, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(bt_position); - evas_object_smart_callback_add(bt_position, "clicked", _node_position_change_cb, fs_node); - - bt_scale = elm_button_add(win); - elm_object_text_set(bt_scale, "Scale"); - elm_box_pack_end(testbox, bt_scale); - evas_object_size_hint_weight_set(bt_scale, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(bt_scale, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(bt_scale); - evas_object_smart_callback_add(bt_scale, "clicked", _node_scale_change_cb, fs_node); - - btnexit = elm_button_add(win); - elm_object_text_set(btnexit, "Exit"); - elm_box_pack_end(startexitbox, btnexit); - evas_object_size_hint_weight_set(btnexit, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(btnexit, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(btnexit); - evas_object_smart_callback_add(btnexit, "clicked", _btnexit_cb, NULL); - - controlbox = elm_box_add(win); - elm_box_horizontal_set(controlbox, EINA_TRUE); - elm_object_part_content_set(layout, "swallow.controls.btn", controlbox); - evas_object_size_hint_weight_set(controlbox, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(controlbox, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(controlbox); - - vcount = elm_label_add(win); - buf = _value_int_to_char(121, "quantity:"); - elm_object_text_set(vcount, buf); - - countdec10 = elm_button_add(win); - elm_object_text_set(countdec10, "<<"); - elm_box_pack_end(controlbox, countdec10); - evas_object_size_hint_weight_set(countdec10, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(countdec10, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(countdec10); - evas_object_smart_callback_add(countdec10, "clicked", _countdec10_cb, vcount); - - countdec = elm_button_add(win); - elm_object_text_set(countdec, "<"); - elm_box_pack_end(controlbox, countdec); - evas_object_size_hint_weight_set(countdec, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(countdec, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(countdec); - evas_object_smart_callback_add(countdec, "clicked", _countdec_cb, vcount); - - elm_box_pack_end(controlbox, vcount); - evas_object_show(vcount); - - countinc = elm_button_add(win); - elm_object_text_set(countinc, ">"); - elm_box_pack_end(controlbox, countinc); - evas_object_size_hint_weight_set(countinc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(countinc, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(countinc); - evas_object_smart_callback_add(countinc, "clicked", _countinc_cb, vcount); - - countinc10 = elm_button_add(win); - elm_object_text_set(countinc10, ">>"); - elm_box_pack_end(controlbox, countinc10); - evas_object_size_hint_weight_set(countinc10, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(countinc10, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(countinc10); - evas_object_smart_callback_add(countinc10, "clicked", _countinc10_cb, vcount); - - vspeed = elm_label_add(win); - buf = _value_int_to_char(30, "speed:"); - elm_object_text_set(vspeed, buf); - - speeddec10 = elm_button_add(win); - elm_object_text_set(speeddec10, "<<"); - elm_box_pack_end(controlbox, speeddec10); - evas_object_size_hint_weight_set(speeddec10, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(speeddec10, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(speeddec10); - evas_object_smart_callback_add(speeddec10, "clicked", _speeddec10_cb, vspeed); - - speeddec = elm_button_add(win); - elm_object_text_set(speeddec, "<"); - elm_box_pack_end(controlbox, speeddec); - evas_object_size_hint_weight_set(speeddec, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(speeddec, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(speeddec); - evas_object_smart_callback_add(speeddec, "clicked", _speeddec_cb, vspeed); - - elm_box_pack_end(controlbox, vspeed); - evas_object_show(vspeed); - - speedinc = elm_button_add(win); - elm_object_text_set(speedinc, ">"); - elm_box_pack_end(controlbox, speedinc); - evas_object_size_hint_weight_set(speedinc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(speedinc, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(speedinc); - evas_object_smart_callback_add(speedinc, "clicked", _speedinc_cb, vspeed); - - speedinc10 = elm_button_add(win); - elm_object_text_set(speedinc10, ">>"); - elm_box_pack_end(controlbox, speedinc10); - evas_object_size_hint_weight_set(speedinc10, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(speedinc10, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(speedinc10); - evas_object_smart_callback_add(speedinc10, "clicked", _speedinc10_cb, vspeed); - - vprecision = elm_label_add(win); - buf = _value_int_to_char(100, "precision:"); - elm_object_text_set(vprecision, buf); - - precisiondec10 = elm_button_add(win); - elm_object_text_set(precisiondec10, "<<"); - elm_box_pack_end(controlbox, precisiondec10); - evas_object_size_hint_weight_set(precisiondec10, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(precisiondec10, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(precisiondec10); - evas_object_smart_callback_add(precisiondec10, "clicked", _precisiondec10_cb, vprecision); - - precisiondec = elm_button_add(win); - elm_object_text_set(precisiondec, "<"); - elm_box_pack_end(controlbox, precisiondec); - evas_object_size_hint_weight_set(precisiondec, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(precisiondec, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(precisiondec); - evas_object_smart_callback_add(precisiondec, "clicked", _precisiondec_cb, vprecision); - - elm_box_pack_end(controlbox, vprecision); - evas_object_show(vprecision); - - precisioninc = elm_button_add(win); - elm_object_text_set(precisioninc, ">"); - elm_box_pack_end(controlbox, precisioninc); - evas_object_size_hint_weight_set(precisioninc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(precisioninc, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(precisioninc); - evas_object_smart_callback_add(precisioninc, "clicked", _precisioninc_cb, vprecision); - - precisioninc10 = elm_button_add(win); - elm_object_text_set(precisioninc10, ">>"); - elm_box_pack_end(controlbox, precisioninc10); - evas_object_size_hint_weight_set(precisioninc10, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(precisioninc10, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(precisioninc10); - evas_object_smart_callback_add(precisioninc10, "clicked", _precisioninc10_cb, vprecision); - - vangle = elm_label_add(win); - buf = _value_int_to_char(120, "angle:"); - elm_object_text_set(vangle, buf); - - angledec10 = elm_button_add(win); - elm_object_text_set(angledec10, "<<"); - elm_box_pack_end(controlbox, angledec10); - evas_object_size_hint_weight_set(angledec10, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(angledec10, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(angledec10); - evas_object_smart_callback_add(angledec10, "clicked", _angledec10_cb, vangle); - - angledec = elm_button_add(win); - elm_object_text_set(angledec, "<"); - elm_box_pack_end(controlbox, angledec); - evas_object_size_hint_weight_set(angledec, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(angledec, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(angledec); - evas_object_smart_callback_add(angledec, "clicked", _angledec_cb, vangle); - - elm_box_pack_end(controlbox, vangle); - evas_object_show(vangle); - - angleinc = elm_button_add(win); - elm_object_text_set(angleinc, ">"); - elm_box_pack_end(controlbox, angleinc); - evas_object_size_hint_weight_set(angleinc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(angleinc, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(angleinc); - evas_object_smart_callback_add(angleinc, "clicked", _angleinc_cb, vangle); - - angleinc10 = elm_button_add(win); - elm_object_text_set(angleinc10, ">>"); - elm_box_pack_end(controlbox, angleinc10); - evas_object_size_hint_weight_set(angleinc10, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(angleinc10, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(angleinc10); - evas_object_smart_callback_add(angleinc10, "clicked", _angleinc10_cb, vangle); - - newfeaturesbox = elm_box_add(win); - elm_box_horizontal_set(newfeaturesbox, EINA_TRUE); - elm_object_part_content_set(layout, "new_features", newfeaturesbox); - evas_object_size_hint_align_set(newfeaturesbox, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(newfeaturesbox); - - cb_shadow = elm_check_add(win); - elm_object_text_set(cb_shadow, "shadow"); - elm_check_state_set(cb_shadow, EINA_FALSE); - evas_object_size_hint_align_set(cb_shadow, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_smart_callback_add(cb_shadow, "changed", _shadow_enable, NULL); - elm_box_pack_end(newfeaturesbox, cb_shadow); - evas_object_show(cb_shadow); - - cb_fog = elm_check_add(win); - elm_object_text_set(cb_fog, "fog"); - elm_check_state_set(cb_fog, EINA_FALSE); - evas_object_size_hint_align_set(cb_fog, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_smart_callback_add(cb_fog, "changed", _fog_enable, NULL); - elm_box_pack_end(newfeaturesbox, cb_fog); - evas_object_show(cb_fog); - - cb_colorpick = elm_check_add(win); - elm_object_text_set(cb_colorpick, "colorpick"); - elm_check_state_set(cb_colorpick, EINA_FALSE); - evas_object_size_hint_align_set(cb_colorpick, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_smart_callback_add(cb_colorpick, "changed", _colorpick_enable, NULL); - elm_box_pack_end(newfeaturesbox, cb_colorpick); - evas_object_show(cb_colorpick); - - cb_blend = elm_check_add(win); - elm_object_text_set(cb_blend, "blend"); - elm_check_state_set(cb_blend, EINA_FALSE); - evas_object_size_hint_align_set(cb_blend, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_smart_callback_add(cb_blend, "changed", _blend_enable, NULL); - elm_box_pack_end(newfeaturesbox, cb_blend); -#ifndef LOCAL_REPOSITORY - elm_object_disabled_set(cb_blend, EINA_TRUE); -#endif - evas_object_show(cb_blend); - - cb_fps = elm_check_add(win); - elm_object_text_set(cb_fps, "fps"); - elm_check_state_set(cb_fps, EINA_FALSE); - evas_object_size_hint_align_set(cb_fps, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_box_pack_end(newfeaturesbox, cb_fps); - evas_object_show(cb_fps); - - /*Select model file*/ - fs_bt = elm_fileselector_button_add(win); - elm_fileselector_path_set(fs_bt, "."); - elm_object_text_set(fs_bt, "load"); - elm_fileselector_button_inwin_mode_set(fs_bt, EINA_TRUE); - evas_object_size_hint_align_set(fs_bt, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_box_pack_end(newfeaturesbox, fs_bt); - evas_object_show(fs_bt); - evas_object_smart_callback_add(fs_bt, "file,chosen", _load_mesh, NULL); - - elm_object_part_content_set(layout, "swallow.content", image); - evas_object_size_hint_weight_set(image, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(image, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(image); - evas_render(evas); //make edje do recalculation - image = init_graphical_window(image); - - /*Update data for count, speed, precision, angle*/ - buf = _value_int_to_char((globalGraphical.count + 1) * (globalGraphical.count + 1), "quantity:"); - elm_object_text_set(vcount, buf); - buf = _value_int_to_char(globalGraphical.speed, "speed:"); - elm_object_text_set(vspeed, buf); - buf = _value_int_to_char(globalGraphical.precision, "precision:"); - elm_object_text_set(vprecision, buf); - buf = _value_int_to_char(globalGraphical.angle, "angle:"); - elm_object_text_set(vangle, buf); - if (globalGraphical.model_path) - evas_object_smart_callback_call(fs_bt, "file,chosen", (void *)globalGraphical.model_path); - - /*Create navigation panel*/ -#ifndef DISABLE_NAVIGATION_PANEL - navigation = init_panel_camera_light(win, globalGraphical.camera_node, globalGraphical.light_node, 1.0, 0.5); - panel_camera_coord_step_set(navigation, 5); - panel_camera_angle_step_set(navigation, 5); - panel_light_coord_step_set(navigation, 5); - panel_light_angle_step_set(navigation, 5); -#endif - - evas_object_event_callback_add(image, EVAS_CALLBACK_MOUSE_DOWN, - _on_mouse_down, navigation); - - ecore_animator_frametime_set(1.0 / (globalGraphical.speed)); - timer = ecore_animator_add(_animate_scene, globalGraphical.light_node); - fps_timer = ecore_timer_add(10, _timer_update, NULL); - ecore_timer_freeze(fps_timer); - evas_object_smart_callback_add(cb_fps, "changed", _cb_fps_enable, (void *)fps_timer); - - evas_object_smart_callback_add(btnstop, "clicked", _btnstop_cb, timer); - - elm_run(); - elm_shutdown(); - -#ifndef DISABLE_NAVIGATION_PANEL - panel_camera_light_fini(navigation); -#endif - return 0; -} -ELM_MAIN() - diff --git a/src/examples/elementary/performance/target_texture.png b/src/examples/elementary/performance/target_texture.png Binary files differdeleted file mode 100644 index 3bcf58b3fe..0000000000 --- a/src/examples/elementary/performance/target_texture.png +++ /dev/null diff --git a/src/examples/elementary/performance/tools_private.h b/src/examples/elementary/performance/tools_private.h deleted file mode 100644 index 40d6f12afc..0000000000 --- a/src/examples/elementary/performance/tools_private.h +++ /dev/null @@ -1,51 +0,0 @@ -#ifndef EFL_BETA_API_SUPPORT -# define EFL_BETA_API_SUPPORT -#endif - -#include <math.h> -#include <stdlib.h> -#include <time.h> -#include <stdio.h> -#include <stdlib.h> - -#include <Eo.h> -#include <Evas.h> -#include <Ecore.h> -#include <Ecore_Evas.h> -#include <Elementary.h> - -#define COORDRANGE 1000 -#define ANGLERANGE 360 -#define axiskeys "xyz" -#define pb "panel_struct" - -typedef struct _Panel_Struct -{ - Evas_Object *cspX, *cspY, *cspZ; - Evas_Object *cspangle; - Evas_Object *lspX, *lspY, *lspZ; - Evas_Object *lspangle; -} Panel_Struct; - -typedef struct _Axis_Key -{ - float x; - float y; - float z; -} Axis_Key; - -/*callbacks*/ -static void -_camera_light_changeX_cb(void *data, Evas_Object *obj, void *event_info); -static void -_camera_light_changeY_cb(void *data, Evas_Object *obj, void *event_info); -static void -_camera_light_changeZ_cb(void *data, Evas_Object *obj, void *event_info); -static void -_camera_light_angle_change_cb(void *data, Evas_Object *obj, void *event_info); -static void -_camera_light_axisX_change_cb(void *data, Evas_Object *obj, void *event_info); -static void -_camera_light_axisY_change_cb(void *data, Evas_Object *obj, void *event_info); -static void -_camera_light_axisZ_change_cb(void *data, Evas_Object *obj, void *event_info); |