From 53260b8037922642c6c7d53ab4a705ee3f0ea1d3 Mon Sep 17 00:00:00 2001 From: Cedric Bail Date: Thu, 1 May 2014 11:01:56 +0200 Subject: [PATCH] evas: fix Evas_3D examples to use Eo API. --- unsorted/evas/evas-3d-cube.c | 51 ++++++------ unsorted/evas/evas-3d-cube2.c | 99 +++++++++++------------ unsorted/evas/evas-3d-pick.c | 145 ++++++++++++++++++---------------- unsorted/evas/evas-3d-proxy.c | 117 +++++++++++++++------------ 4 files changed, 210 insertions(+), 202 deletions(-) diff --git a/unsorted/evas/evas-3d-cube.c b/unsorted/evas/evas-3d-cube.c index e21e8e75..198b422f 100644 --- a/unsorted/evas/evas-3d-cube.c +++ b/unsorted/evas/evas-3d-cube.c @@ -126,20 +126,20 @@ static void _camera_setup(Scene_Data *data) { data->camera = eo_add(EVAS_3D_CAMERA_CLASS, evas); + eo_do(data->camera, evas_3d_camera_projection_perspective_set(60.0, 1.0, 2.0, 50.0)); // data->camera_node = // eo_add(EVAS_3D_NODE_CLASS, evas, EVAS_3D_NODE_TYPE_CAMERA); data->camera_node = evas_3d_node_add(evas, EVAS_3D_NODE_TYPE_CAMERA); + eo_do(data->camera_node, - evas_3d_node_camera_set(data->camera)); - eo_do(data->root_node, - evas_3d_node_member_add(data->camera_node)); - eo_do(data->camera_node, + evas_3d_node_camera_set(data->camera), evas_3d_node_position_set(0.0, 0.0, 10.0), evas_3d_node_look_at_set(EVAS_3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_3D_SPACE_PARENT, 0.0, 1.0, 0.0)); + eo_do(data->root_node, evas_3d_node_member_add(data->camera_node)); } static void @@ -154,29 +154,26 @@ _light_setup(Scene_Data *data) // data->light_node = eo_add(EVAS_3D_NODE_CLASS, evas, EVAS_3D_NODE_TYPE_LIGHT); data->light_node = evas_3d_node_add(evas, EVAS_3D_NODE_TYPE_LIGHT); eo_do(data->light_node, - evas_3d_node_light_set(data->light)); - eo_do(data->root_node, - evas_3d_node_member_add(data->light_node)); - eo_do(data->light_node, + evas_3d_node_light_set(data->light), evas_3d_node_position_set(0.0, 0.0, 10.0), evas_3d_node_look_at_set(EVAS_3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_3D_SPACE_PARENT, 0.0, 1.0, 0.0)); + eo_do(data->root_node, evas_3d_node_member_add(data->light_node)); } static void _mesh_setup(Scene_Data *data) { /* Setup material. */ data->material = eo_add(EVAS_3D_MATERIAL_CLASS, evas); + eo_do(data->material, evas_3d_material_enable_set(EVAS_3D_MATERIAL_AMBIENT, EINA_TRUE), evas_3d_material_enable_set(EVAS_3D_MATERIAL_DIFFUSE, EINA_TRUE), evas_3d_material_enable_set(EVAS_3D_MATERIAL_SPECULAR, EINA_TRUE), - evas_3d_material_color_set(EVAS_3D_MATERIAL_AMBIENT, - 0.2, 0.2, 0.2, 1.0), - evas_3d_material_color_set(EVAS_3D_MATERIAL_DIFFUSE, - 0.8, 0.8, 0.8, 1.0), - evas_3d_material_color_set(EVAS_3D_MATERIAL_SPECULAR, - 1.0, 1.0, 1.0, 1.0), + + evas_3d_material_color_set(EVAS_3D_MATERIAL_AMBIENT, 0.2, 0.2, 0.2, 1.0), + evas_3d_material_color_set(EVAS_3D_MATERIAL_DIFFUSE, 0.8, 0.8, 0.8, 1.0), + evas_3d_material_color_set(EVAS_3D_MATERIAL_SPECULAR, 1.0, 1.0, 1.0, 1.0), evas_3d_material_shininess_set(100.0)); /* Setup mesh. */ @@ -184,37 +181,35 @@ _mesh_setup(Scene_Data *data) eo_do(data->mesh, evas_3d_mesh_vertex_count_set(24), evas_3d_mesh_frame_add(0), + evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_POSITION, - 12 * sizeof(float), - &cube_vertices[0]), + 12 * sizeof(float), &cube_vertices[ 0]), evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_NORMAL, - 12 * sizeof(float), - &cube_vertices[3]), + 12 * sizeof(float), &cube_vertices[ 3]), evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_COLOR, - 12 * sizeof(float), - &cube_vertices[6]), + 12 * sizeof(float), &cube_vertices[ 6]), evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_TEXCOORD, - 12 * sizeof(float), - &cube_vertices[10]), + 12 * sizeof(float), &cube_vertices[10]), + evas_3d_mesh_index_data_set(EVAS_3D_INDEX_FORMAT_UNSIGNED_SHORT, 36, &cube_indices[0]), evas_3d_mesh_vertex_assembly_set(EVAS_3D_VERTEX_ASSEMBLY_TRIANGLES), + evas_3d_mesh_shade_mode_set(EVAS_3D_SHADE_MODE_PHONG), + evas_3d_mesh_frame_material_set(0, data->material)); -// data->mesh_node = eo_add(EVAS_3D_NODE_CLASS, evas, EVAS_3D_NODE_TYPE_MESH); data->mesh_node = evas_3d_node_add(evas, EVAS_3D_NODE_TYPE_MESH); - eo_do(data->root_node, - evas_3d_node_member_add(data->mesh_node)); - eo_do(data->mesh_node, - evas_3d_node_mesh_add(data->mesh)); + eo_do(data->root_node, evas_3d_node_member_add(data->mesh_node)); + eo_do(data->mesh_node, evas_3d_node_mesh_add(data->mesh)); } static void _scene_setup(Scene_Data *data) { data->scene = eo_add(EVAS_3D_SCENE_CLASS, evas); - eo_do(data->scene, evas_3d_scene_size_set(WIDTH, HEIGHT), + eo_do(data->scene, + evas_3d_scene_size_set(WIDTH, HEIGHT); evas_3d_scene_background_color_set(0.0, 0.0, 0.0, 0.0)); // data->root_node = eo_add(EVAS_3D_NODE_CLASS, evas, EVAS_3D_NODE_TYPE_NODE); diff --git a/unsorted/evas/evas-3d-cube2.c b/unsorted/evas/evas-3d-cube2.c index 7c90d1d8..ac0bbdca 100644 --- a/unsorted/evas/evas-3d-cube2.c +++ b/unsorted/evas/evas-3d-cube2.c @@ -163,13 +163,12 @@ _camera_setup(Scene_Data *data) // eo_add(EVAS_3D_NODE_CLASS, evas, EVAS_3D_NODE_TYPE_CAMERA); data->camera_node = evas_3d_node_add(evas, EVAS_3D_NODE_TYPE_CAMERA); eo_do(data->camera_node, - evas_3d_node_camera_set(data->camera)); - eo_do(data->root_node, - evas_3d_node_member_add(data->camera_node)); - eo_do(data->camera_node, + evas_3d_node_camera_set(data->camera), evas_3d_node_position_set(0.0, 0.0, 10.0), evas_3d_node_look_at_set(EVAS_3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_3D_SPACE_PARENT, 0.0, 1.0, 0.0)); + eo_do(data->root_node, + evas_3d_node_member_add(data->camera_node)); } static void @@ -184,13 +183,11 @@ _light_setup(Scene_Data *data) // data->light_node = eo_add(EVAS_3D_NODE_CLASS, evas, EVAS_3D_NODE_TYPE_LIGHT); data->light_node = evas_3d_node_add(evas, EVAS_3D_NODE_TYPE_LIGHT); eo_do(data->light_node, - evas_3d_node_light_set(data->light)); - eo_do(data->root_node, - evas_3d_node_member_add(data->light_node)); - eo_do(data->light_node, + evas_3d_node_light_set(data->light), evas_3d_node_position_set(0.0, 0.0, 10.0), evas_3d_node_look_at_set(EVAS_3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_3D_SPACE_PARENT, 0.0, 1.0, 0.0)); + eo_do(data->root_node, evas_3d_node_member_add(data->light_node)); } static void @@ -198,92 +195,86 @@ _mesh_setup(Scene_Data *data) { /* Setup material. */ data->material0 = eo_add(EVAS_3D_MATERIAL_CLASS, evas); + data->material1 = eo_add(EVAS_3D_MATERIAL_CLASS, evas); + eo_do(data->material0, evas_3d_material_enable_set(EVAS_3D_MATERIAL_AMBIENT, EINA_TRUE), evas_3d_material_enable_set(EVAS_3D_MATERIAL_DIFFUSE, EINA_TRUE), - evas_3d_material_enable_set(EVAS_3D_MATERIAL_SPECULAR, EINA_TRUE); - evas_3d_material_color_set(EVAS_3D_MATERIAL_AMBIENT, - 0.2, 0.2, 0.2, 1.0), - evas_3d_material_color_set(EVAS_3D_MATERIAL_DIFFUSE, - 0.8, 0.8, 0.8, 1.0), - evas_3d_material_color_set(EVAS_3D_MATERIAL_SPECULAR, - 1.0, 1.0, 1.0, 1.0), + evas_3d_material_enable_set(EVAS_3D_MATERIAL_SPECULAR, EINA_TRUE), + evas_3d_material_enable_set(EVAS_3D_MATERIAL_NORMAL, EINA_TRUE), + + evas_3d_material_color_set(EVAS_3D_MATERIAL_AMBIENT, 0.2, 0.2, 0.2, 1.0), + evas_3d_material_color_set(EVAS_3D_MATERIAL_DIFFUSE, 0.8, 0.8, 0.8, 1.0), + evas_3d_material_color_set(EVAS_3D_MATERIAL_SPECULAR, 1.0, 1.0, 1.0, 1.0), evas_3d_material_shininess_set(100.0)); - data->material1 = eo_add(EVAS_3D_MATERIAL_CLASS, evas); eo_do(data->material1, evas_3d_material_enable_set(EVAS_3D_MATERIAL_AMBIENT, EINA_TRUE), evas_3d_material_enable_set(EVAS_3D_MATERIAL_DIFFUSE, EINA_TRUE), evas_3d_material_enable_set(EVAS_3D_MATERIAL_SPECULAR, EINA_TRUE), - evas_3d_material_enable_set(EVAS_3D_MATERIAL_NORMAL, EINA_TRUE); - evas_3d_material_color_set(EVAS_3D_MATERIAL_AMBIENT, - 0.2, 0.2, 0.2, 1.0), - evas_3d_material_color_set(EVAS_3D_MATERIAL_DIFFUSE, - 0.8, 0.8, 0.8, 1.0), - evas_3d_material_color_set(EVAS_3D_MATERIAL_SPECULAR, - 1.0, 1.0, 1.0, 1.0), + evas_3d_material_enable_set(EVAS_3D_MATERIAL_NORMAL, EINA_TRUE), + + evas_3d_material_color_set(EVAS_3D_MATERIAL_AMBIENT, 0.2, 0.2, 0.2, 1.0), + evas_3d_material_color_set(EVAS_3D_MATERIAL_DIFFUSE, 0.8, 0.8, 0.8, 1.0), + evas_3d_material_color_set(EVAS_3D_MATERIAL_SPECULAR, 1.0, 1.0, 1.0, 1.0), evas_3d_material_shininess_set(100.0)); - /* Texture 1 */ data->texture0 = eo_add(EVAS_3D_TEXTURE_CLASS, evas); - eo_do(data->texture0, evas_3d_texture_data_set(EVAS_3D_COLOR_FORMAT_RGBA, - EVAS_3D_PIXEL_FORMAT_8888, 4, - 4, &pixels0[0])); - eo_do(data->material0, evas_3d_material_texture_set(EVAS_3D_MATERIAL_DIFFUSE, - data->texture0)); - /* Texture 2 */ data->texture1 = eo_add(EVAS_3D_TEXTURE_CLASS, evas); - eo_do(data->texture1, evas_3d_texture_data_set(EVAS_3D_COLOR_FORMAT_RGBA, - EVAS_3D_PIXEL_FORMAT_8888, 4, - 4, &pixels1[0])); - eo_do(data->material1, evas_3d_material_texture_set(EVAS_3D_MATERIAL_DIFFUSE, - data->texture1)); - /* Normal texture */ data->texture_normal = eo_add(EVAS_3D_TEXTURE_CLASS, evas); - eo_do(data->texture_normal, evas_3d_texture_file_set("normal_lego.png", - NULL)); + eo_do(data->texture0, + evas_3d_texture_data_set(EVAS_3D_COLOR_FORMAT_RGBA, + EVAS_3D_PIXEL_FORMAT_8888, 4, 4, &pixels0[0])); + eo_do(data->texture1, + evas_3d_texture_data_set(EVAS_3D_COLOR_FORMAT_RGBA, + EVAS_3D_PIXEL_FORMAT_8888, 4, 4, &pixels1[0])); + eo_do(data->texture_normal, evas_3d_texture_file_set("normal_lego.png", NULL)); + + eo_do(data->material0, + evas_3d_material_texture_set(EVAS_3D_MATERIAL_DIFFUSE, data->texture0)); + eo_do(data->material1, + evas_3d_material_texture_set(EVAS_3D_MATERIAL_DIFFUSE, data->texture1)); + eo_do(data->material1, + evas_3d_material_texture_set(EVAS_3D_MATERIAL_NORMAL, data->texture_normal)); - eo_do(data->material1, evas_3d_material_texture_set(EVAS_3D_MATERIAL_NORMAL, - data->texture_normal)); /* Setup mesh. */ data->mesh = eo_add(EVAS_3D_MESH_CLASS, evas); eo_do(data->mesh, evas_3d_mesh_vertex_count_set(24), evas_3d_mesh_frame_add(0), + evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_POSITION, - 12 * sizeof(float), - &cube_vertices[0]), + 12 * sizeof(float), &cube_vertices[0]), evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_NORMAL, - 12 * sizeof(float), - &cube_vertices[3]), + 12 * sizeof(float), &cube_vertices[3]), evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_COLOR, - 12 * sizeof(float), - &cube_vertices[6]), + 12 * sizeof(float), &cube_vertices[6]), evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_TEXCOORD, - 12 * sizeof(float), - &cube_vertices[10]), + 12 * sizeof(float), &cube_vertices[10]), + evas_3d_mesh_index_data_set(EVAS_3D_INDEX_FORMAT_UNSIGNED_SHORT, 36, &cube_indices[0]), evas_3d_mesh_vertex_assembly_set(EVAS_3D_VERTEX_ASSEMBLY_TRIANGLES), + evas_3d_mesh_shade_mode_set(EVAS_3D_SHADE_MODE_NORMAL_MAP), + evas_3d_mesh_frame_material_set(0, data->material0), + evas_3d_mesh_frame_add(20), evas_3d_mesh_frame_material_set(20, data->material1)); -// data->mesh_node = eo_add(EVAS_3D_NODE_CLASS, evas, EVAS_3D_NODE_TYPE_MESH); data->mesh_node = evas_3d_node_add(evas, EVAS_3D_NODE_TYPE_MESH); - eo_do(data->root_node, - evas_3d_node_member_add(data->mesh_node)); - eo_do(data->mesh_node, - evas_3d_node_mesh_add(data->mesh)); + eo_do(data->root_node, evas_3d_node_member_add(data->mesh_node)); + eo_do(data->mesh_node, evas_3d_node_mesh_add(data->mesh)); } static void _scene_setup(Scene_Data *data) { data->scene = eo_add(EVAS_3D_SCENE_CLASS, evas); - eo_do(data->scene, evas_3d_scene_size_set(WIDTH, HEIGHT), + eo_do(data->scene, + evas_3d_scene_size_set(WIDTH, HEIGHT), evas_3d_scene_background_color_set(0.0, 0.0, 0.0, 0.0)); // data->root_node = eo_add(EVAS_3D_NODE_CLASS, evas, EVAS_3D_NODE_TYPE_NODE); diff --git a/unsorted/evas/evas-3d-pick.c b/unsorted/evas/evas-3d-pick.c index 0963675a..b98a489d 100644 --- a/unsorted/evas/evas-3d-pick.c +++ b/unsorted/evas/evas-3d-pick.c @@ -1,3 +1,5 @@ +#define EFL_EO_API_SUPPORT +#define EFL_BETA_API_SUPPORT #include #include #include @@ -28,7 +30,8 @@ _animate_scene(void *data) angle += 0.3; - evas_3d_node_orientation_angle_axis_set((Evas_3D_Node *)data, angle, 0.0, 1.0, 0.0); + eo_do((Evas_3D_Node *)data, + evas_3d_node_orientation_angle_axis_set(angle, 0.0, 1.0, 0.0)); /* Rotate */ if (angle > 360.0) @@ -254,37 +257,39 @@ _on_mouse_down(void *data EINA_UNUSED, Evas_Object *o, void *einfo) { - Evas_Event_Mouse_Down *ev = einfo; - 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_3D_Node *n; - Evas_3D_Mesh *m; + Evas_Event_Mouse_Down *ev = einfo; + 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_3D_Node *n; + Evas_3D_Mesh *m; + Eina_Bool pick; - evas_object_geometry_get(o, &x, &y, &w, &h); + evas_object_geometry_get(o, &x, &y, &w, &h); - obj_x = ev->canvas.x - x; - obj_y = ev->canvas.y - y; + obj_x = ev->canvas.x - x; + obj_y = ev->canvas.y - y; - evas_3d_scene_size_get(scene, &scene_w, &scene_h); + eo_do(scene, evas_3d_scene_size_get(&scene_w, &scene_h)); - scene_x = obj_x * scene_w / (Evas_Real)w; - scene_y = obj_y * scene_h / (Evas_Real)h; + scene_x = obj_x * scene_w / (Evas_Real)w; + scene_y = obj_y * scene_h / (Evas_Real)h; - if (evas_3d_scene_pick(scene, scene_x, scene_y, &n, &m, &s, &t)) - printf("Picked : "); - else - printf("Not picked : "); + eo_do(scene, pick = evas_3d_scene_pick(scene_x, scene_y, &n, &m, &s, &t)); + if (pick) + printf("Picked : "); + else + printf("Not picked : "); printf("output(%d, %d) canvas(%d, %d) object(%d, %d) scene(%f, %f) texcoord(%f, %f) " - "node(%p) mesh(%p)\n", - ev->output.x, ev->output.y, - ev->canvas.x, ev->canvas.y, - obj_x, obj_y, - scene_x, scene_y, - s, t, n, m); + "node(%p) mesh(%p)\n", + ev->output.x, ev->output.y, + ev->canvas.x, ev->canvas.y, + obj_x, obj_y, + scene_x, scene_y, + s, t, n, m); } int @@ -305,69 +310,73 @@ main(void) evas = ecore_evas_get(ecore_evas); /* Add a scene object .*/ - scene = evas_3d_scene_add(evas); + scene = eo_add(EVAS_3D_SCENE_CLASS, evas); /* Add the root node for the scene. */ root_node = evas_3d_node_add(evas, EVAS_3D_NODE_TYPE_NODE); /* Add the camera. */ - camera = evas_3d_camera_add(evas); - evas_3d_camera_projection_perspective_set(camera, 30.0, 1.0, 1.0, 100.0); + camera = eo_add(EVAS_3D_CAMERA_CLASS, evas); + eo_do(camera, evas_3d_camera_projection_perspective_set(30.0, 1.0, 1.0, 100.0)); camera_node = evas_3d_node_add(evas, EVAS_3D_NODE_TYPE_CAMERA); - evas_3d_node_camera_set(camera_node, camera); - evas_3d_node_member_add(root_node, camera_node); - evas_3d_node_position_set(camera_node, 0.0, 0.0, 5.0); - evas_3d_node_look_at_set(camera_node, EVAS_3D_SPACE_PARENT, 0.0, 0.0, 0.0, - EVAS_3D_SPACE_PARENT, 0.0, 1.0, 0.0); + eo_do(camera_node, + evas_3d_node_camera_set(camera); + evas_3d_node_position_set(0.0, 0.0, 5.0); + evas_3d_node_look_at_set(EVAS_3D_SPACE_PARENT, 0.0, 0.0, 0.0, + EVAS_3D_SPACE_PARENT, 0.0, 1.0, 0.0)); + eo_do(root_node, evas_3d_node_member_add(camera_node)); /* Add the cube mesh. */ _sphere_init(100); - mesh = evas_3d_mesh_add(evas); - evas_3d_mesh_vertex_count_set(mesh, vertex_count); - evas_3d_mesh_frame_add(mesh, 0); - evas_3d_mesh_frame_vertex_data_set(mesh, 0, EVAS_3D_VERTEX_POSITION, - sizeof(vertex), &vertices[0].position); - evas_3d_mesh_frame_vertex_data_set(mesh, 0, EVAS_3D_VERTEX_NORMAL, - sizeof(vertex), &vertices[0].normal); - evas_3d_mesh_frame_vertex_data_set(mesh, 0, EVAS_3D_VERTEX_TANGENT, - sizeof(vertex), &vertices[0].tangent); - evas_3d_mesh_frame_vertex_data_set(mesh, 0, EVAS_3D_VERTEX_COLOR, - sizeof(vertex), &vertices[0].color); - evas_3d_mesh_frame_vertex_data_set(mesh, 0, EVAS_3D_VERTEX_TEXCOORD, - sizeof(vertex), &vertices[0].texcoord); + mesh = eo_add(EVAS_3D_MESH_CLASS, evas); + eo_do(mesh, + evas_3d_mesh_vertex_count_set(vertex_count), + evas_3d_mesh_frame_add(0), + evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_POSITION, + sizeof(vertex), &vertices[0].position), + evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_NORMAL, + sizeof(vertex), &vertices[0].normal), + evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_TANGENT, + sizeof(vertex), &vertices[0].tangent), + evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_COLOR, + sizeof(vertex), &vertices[0].color), + evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_TEXCOORD, + sizeof(vertex), &vertices[0].texcoord), - evas_3d_mesh_index_data_set(mesh, EVAS_3D_INDEX_FORMAT_UNSIGNED_SHORT, index_count, &indices[0]); - evas_3d_mesh_vertex_assembly_set(mesh, EVAS_3D_VERTEX_ASSEMBLY_TRIANGLES); + evas_3d_mesh_index_data_set(EVAS_3D_INDEX_FORMAT_UNSIGNED_SHORT, index_count, &indices[0]), + evas_3d_mesh_vertex_assembly_set(EVAS_3D_VERTEX_ASSEMBLY_TRIANGLES)); - material = evas_3d_material_add(evas); - evas_3d_mesh_frame_material_set(mesh, 0, material); + material = eo_add(EVAS_3D_MATERIAL_CLASS, evas); + eo_do(mesh, evas_3d_mesh_frame_material_set(0, material)); - texture_diffuse = evas_3d_texture_add(evas); + texture_diffuse = eo_add(EVAS_3D_TEXTURE_CLASS, evas); + eo_do(texture_diffuse, + evas_3d_texture_file_set("EarthDiffuse.png", NULL), + evas_3d_texture_filter_set(EVAS_3D_TEXTURE_FILTER_LINEAR, EVAS_3D_TEXTURE_FILTER_LINEAR)); + eo_do(material, + evas_3d_material_texture_set(EVAS_3D_MATERIAL_DIFFUSE, texture_diffuse), - evas_3d_texture_file_set(texture_diffuse, "EarthDiffuse.png", NULL); - evas_3d_texture_filter_set(texture_diffuse, EVAS_3D_TEXTURE_FILTER_LINEAR, EVAS_3D_TEXTURE_FILTER_LINEAR); - evas_3d_material_texture_set(material, EVAS_3D_MATERIAL_DIFFUSE, texture_diffuse); + evas_3d_material_enable_set(EVAS_3D_MATERIAL_AMBIENT, EINA_TRUE), + evas_3d_material_enable_set(EVAS_3D_MATERIAL_DIFFUSE, EINA_TRUE), + evas_3d_material_enable_set(EVAS_3D_MATERIAL_SPECULAR, EINA_TRUE), - evas_3d_material_enable_set(material, EVAS_3D_MATERIAL_AMBIENT, EINA_TRUE); - evas_3d_material_enable_set(material, EVAS_3D_MATERIAL_DIFFUSE, EINA_TRUE); - evas_3d_material_enable_set(material, EVAS_3D_MATERIAL_SPECULAR, EINA_TRUE); - - evas_3d_material_color_set(material, EVAS_3D_MATERIAL_AMBIENT, 0.01, 0.01, 0.01, 1.0); - evas_3d_material_color_set(material, EVAS_3D_MATERIAL_DIFFUSE, 1.0, 1.0, 1.0, 1.0); - evas_3d_material_color_set(material, EVAS_3D_MATERIAL_SPECULAR, 1.0, 1.0, 1.0, 1.0); - evas_3d_material_shininess_set(material, 50.0); + evas_3d_material_color_set(EVAS_3D_MATERIAL_AMBIENT, 0.01, 0.01, 0.01, 1.0), + evas_3d_material_color_set(EVAS_3D_MATERIAL_DIFFUSE, 1.0, 1.0, 1.0, 1.0), + evas_3d_material_color_set(EVAS_3D_MATERIAL_SPECULAR, 1.0, 1.0, 1.0, 1.0), + evas_3d_material_shininess_set(50.0)); mesh_node = evas_3d_node_add(evas, EVAS_3D_NODE_TYPE_MESH); - evas_3d_node_member_add(root_node, mesh_node); - evas_3d_node_mesh_add(mesh_node, mesh); - evas_3d_mesh_shade_mode_set(mesh, EVAS_3D_SHADE_MODE_DIFFUSE); + eo_do(root_node, evas_3d_node_member_add(mesh_node)); + eo_do(mesh_node, evas_3d_node_mesh_add(mesh)); + eo_do(mesh, evas_3d_mesh_shade_mode_set(EVAS_3D_SHADE_MODE_DIFFUSE)); /* Set up scene. */ - evas_3d_scene_root_node_set(scene, root_node); - evas_3d_scene_camera_node_set(scene, camera_node); - evas_3d_scene_size_set(scene, WIDTH, HEIGHT); + eo_do(scene, + evas_3d_scene_root_node_set(root_node), + evas_3d_scene_camera_node_set(camera_node), + evas_3d_scene_size_set(WIDTH, HEIGHT)); /* Add evas objects. */ background = evas_object_rectangle_add(evas); diff --git a/unsorted/evas/evas-3d-proxy.c b/unsorted/evas/evas-3d-proxy.c index 8de8beae..1e34dfed 100644 --- a/unsorted/evas/evas-3d-proxy.c +++ b/unsorted/evas/evas-3d-proxy.c @@ -1,3 +1,5 @@ +#define EFL_EO_API_SUPPORT +#define EFL_BETA_API_SUPPORT #include #include #include @@ -119,7 +121,8 @@ _animate_scene(void *data) angle += 0.5; - evas_3d_node_orientation_angle_axis_set(scene->mesh_node, angle, 1.0, 1.0, 1.0); + eo_do(scene->mesh_node, + evas_3d_node_orientation_angle_axis_set(angle, 1.0, 1.0, 1.0)); /* Rotate */ if (angle > 360.0) @@ -147,87 +150,96 @@ _animate_scene(void *data) static void _camera_setup(Scene_Data *data) { - data->camera = evas_3d_camera_add(evas); - evas_3d_camera_projection_perspective_set(data->camera, 30.0, 1.0, 2.0, 50.0); + data->camera = eo_add(EVAS_3D_CAMERA_CLASS, evas); + eo_do(data->camera, + evas_3d_camera_projection_perspective_set(30.0, 1.0, 2.0, 50.0)); data->camera_node = evas_3d_node_add(evas, EVAS_3D_NODE_TYPE_CAMERA); - evas_3d_node_camera_set(data->camera_node, data->camera); - evas_3d_node_member_add(data->root_node, data->camera_node); - evas_3d_node_position_set(data->camera_node, 0.0, 0.0, 10.0); - evas_3d_node_look_at_set(data->camera_node, EVAS_3D_SPACE_PARENT, 0.0, 0.0, 0.0, - EVAS_3D_SPACE_PARENT, 0.0, 1.0, 0.0); + eo_do(data->camera_node, + evas_3d_node_camera_set(data->camera), + evas_3d_node_position_set(0.0, 0.0, 10.0), + evas_3d_node_look_at_set(EVAS_3D_SPACE_PARENT, 0.0, 0.0, 0.0, + EVAS_3D_SPACE_PARENT, 0.0, 1.0, 0.0)); + eo_do(data->root_node, + evas_3d_node_member_add(data->camera_node)); } static void _light_setup(Scene_Data *data) { - data->light = evas_3d_light_add(evas); - evas_3d_light_ambient_set(data->light, 0.2, 0.2, 0.2, 1.0); - evas_3d_light_diffuse_set(data->light, 1.0, 1.0, 1.0, 1.0); - evas_3d_light_specular_set(data->light, 1.0, 1.0, 1.0, 1.0); + data->light = eo_add(EVAS_3D_LIGHT_CLASS, evas); + eo_do(data->light, + evas_3d_light_ambient_set(0.2, 0.2, 0.2, 1.0), + evas_3d_light_diffuse_set(1.0, 1.0, 1.0, 1.0), + evas_3d_light_specular_set(1.0, 1.0, 1.0, 1.0)); data->light_node = evas_3d_node_add(evas, EVAS_3D_NODE_TYPE_LIGHT); - evas_3d_node_light_set(data->light_node, data->light); - evas_3d_node_member_add(data->root_node, data->light_node); - evas_3d_node_position_set(data->light_node, 0.0, 0.0, 10.0); - evas_3d_node_look_at_set(data->light_node, EVAS_3D_SPACE_PARENT, 0.0, 0.0, 0.0, - EVAS_3D_SPACE_PARENT, 0.0, 1.0, 0.0); + eo_do(data->light_node, + evas_3d_node_light_set(data->light), + evas_3d_node_position_set(0.0, 0.0, 10.0), + evas_3d_node_look_at_set(EVAS_3D_SPACE_PARENT, 0.0, 0.0, 0.0, + EVAS_3D_SPACE_PARENT, 0.0, 1.0, 0.0)); + eo_do(data->root_node, evas_3d_node_member_add(data->light_node)); } static void _mesh_setup(Scene_Data *data) { /* Setup material. */ - data->material = evas_3d_material_add(evas); - data->texture = evas_3d_texture_add(evas); + data->material = eo_add(EVAS_3D_MATERIAL_CLASS, evas); + data->texture = eo_add(EVAS_3D_TEXTURE_CLASS, evas); - evas_3d_texture_source_set(data->texture, source); - evas_3d_texture_source_visible_set(data->texture, EINA_TRUE); + eo_do(data->texture, + evas_3d_texture_source_set(source), + evas_3d_texture_source_visible_set(EINA_TRUE)); - evas_3d_material_enable_set(data->material, EVAS_3D_MATERIAL_AMBIENT, EINA_TRUE); - evas_3d_material_enable_set(data->material, EVAS_3D_MATERIAL_DIFFUSE, EINA_TRUE); - evas_3d_material_enable_set(data->material, EVAS_3D_MATERIAL_SPECULAR, EINA_TRUE); + eo_do(data->material, + evas_3d_material_enable_set(EVAS_3D_MATERIAL_AMBIENT, EINA_TRUE), + evas_3d_material_enable_set(EVAS_3D_MATERIAL_DIFFUSE, EINA_TRUE), + evas_3d_material_enable_set(EVAS_3D_MATERIAL_SPECULAR, EINA_TRUE), - evas_3d_material_color_set(data->material, EVAS_3D_MATERIAL_AMBIENT, 0.2, 0.2, 0.2, 1.0); - evas_3d_material_color_set(data->material, EVAS_3D_MATERIAL_DIFFUSE, 0.8, 0.8, 0.8, 1.0); - evas_3d_material_color_set(data->material, EVAS_3D_MATERIAL_SPECULAR, 1.0, 1.0, 1.0, 1.0); - evas_3d_material_shininess_set(data->material, 100.0); + evas_3d_material_color_set(EVAS_3D_MATERIAL_AMBIENT, 0.2, 0.2, 0.2, 1.0), + evas_3d_material_color_set(EVAS_3D_MATERIAL_DIFFUSE, 0.8, 0.8, 0.8, 1.0), + evas_3d_material_color_set(EVAS_3D_MATERIAL_SPECULAR, 1.0, 1.0, 1.0, 1.0), + evas_3d_material_shininess_set(100.0), - evas_3d_material_texture_set(data->material, EVAS_3D_MATERIAL_DIFFUSE, data->texture); + evas_3d_material_texture_set(EVAS_3D_MATERIAL_DIFFUSE, data->texture)); /* Setup mesh. */ - data->mesh = evas_3d_mesh_add(evas); - evas_3d_mesh_vertex_count_set(data->mesh, 24); - evas_3d_mesh_frame_add(data->mesh, 0); + data->mesh = eo_add(EVAS_3D_MESH_CLASS, evas); + eo_do(data->mesh, + evas_3d_mesh_vertex_count_set(24), + evas_3d_mesh_frame_add(0), - evas_3d_mesh_frame_vertex_data_set(data->mesh, 0, EVAS_3D_VERTEX_POSITION, - 12 * sizeof(float), &cube_vertices[ 0]); - evas_3d_mesh_frame_vertex_data_set(data->mesh, 0, EVAS_3D_VERTEX_NORMAL, - 12 * sizeof(float), &cube_vertices[ 3]); - evas_3d_mesh_frame_vertex_data_set(data->mesh, 0, EVAS_3D_VERTEX_COLOR, - 12 * sizeof(float), &cube_vertices[ 6]); - evas_3d_mesh_frame_vertex_data_set(data->mesh, 0, EVAS_3D_VERTEX_TEXCOORD, - 12 * sizeof(float), &cube_vertices[10]); + evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_POSITION, + 12 * sizeof(float), &cube_vertices[ 0]), + evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_NORMAL, + 12 * sizeof(float), &cube_vertices[ 3]), + evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_COLOR, + 12 * sizeof(float), &cube_vertices[ 6]), + evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_TEXCOORD, + 12 * sizeof(float), &cube_vertices[10]), - evas_3d_mesh_index_data_set(data->mesh, EVAS_3D_INDEX_FORMAT_UNSIGNED_SHORT, - 36, &cube_indices[0]); - evas_3d_mesh_vertex_assembly_set(data->mesh, EVAS_3D_VERTEX_ASSEMBLY_TRIANGLES); + evas_3d_mesh_index_data_set(EVAS_3D_INDEX_FORMAT_UNSIGNED_SHORT, + 36, &cube_indices[0]), + evas_3d_mesh_vertex_assembly_set(EVAS_3D_VERTEX_ASSEMBLY_TRIANGLES), - evas_3d_mesh_shade_mode_set(data->mesh, EVAS_3D_SHADE_MODE_FLAT); + evas_3d_mesh_shade_mode_set(EVAS_3D_SHADE_MODE_FLAT), - evas_3d_mesh_frame_material_set(data->mesh, 0, data->material); + evas_3d_mesh_frame_material_set(0, data->material)); data->mesh_node = evas_3d_node_add(evas, EVAS_3D_NODE_TYPE_MESH); - evas_3d_node_member_add(data->root_node, data->mesh_node); - evas_3d_node_mesh_add(data->mesh_node, data->mesh); + eo_do(data->root_node, evas_3d_node_member_add(data->mesh_node)); + eo_do(data->mesh_node, evas_3d_node_mesh_add(data->mesh)); } static void _scene_setup(Scene_Data *data) { - data->scene = evas_3d_scene_add(evas); - evas_3d_scene_size_set(data->scene, WIDTH, HEIGHT); - evas_3d_scene_background_color_set(data->scene, 0.0, 0.0, 0.0, 0.0); + data->scene = eo_add(EVAS_3D_SCENE_CLASS, evas); + eo_do(data->scene, + evas_3d_scene_size_set(WIDTH, HEIGHT), + evas_3d_scene_background_color_set(0.0, 0.0, 0.0, 0.0)); data->root_node = evas_3d_node_add(evas, EVAS_3D_NODE_TYPE_NODE); @@ -235,8 +247,9 @@ _scene_setup(Scene_Data *data) _light_setup(data); _mesh_setup(data); - evas_3d_scene_root_node_set(data->scene, data->root_node); - evas_3d_scene_camera_node_set(data->scene, data->camera_node); + eo_do(data->scene, + evas_3d_scene_root_node_set(data->root_node), + evas_3d_scene_camera_node_set(data->camera_node)); } int