cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=bcfae42b3ce7399b96ebba65e9ed5eda8a979224

commit bcfae42b3ce7399b96ebba65e9ed5eda8a979224
Author: Cedric Bail <[email protected]>
Date:   Thu May 1 11:01:56 2014 +0200

    evas: fix Evas_3D examples to use Eo API.
---
 src/examples/evas/evas-3d-cube.c  |  51 ++++++-------
 src/examples/evas/evas-3d-cube2.c |  99 +++++++++++-------------
 src/examples/evas/evas-3d-pick.c  | 155 ++++++++++++++++++++------------------
 src/examples/evas/evas-3d-proxy.c | 117 +++++++++++++++-------------
 4 files changed, 215 insertions(+), 207 deletions(-)

diff --git a/src/examples/evas/evas-3d-cube.c b/src/examples/evas/evas-3d-cube.c
index e21e8e7..198b422 100644
--- a/src/examples/evas/evas-3d-cube.c
+++ b/src/examples/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/src/examples/evas/evas-3d-cube2.c 
b/src/examples/evas/evas-3d-cube2.c
index 7c90d1d..ac0bbdc 100644
--- a/src/examples/evas/evas-3d-cube2.c
+++ b/src/examples/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/src/examples/evas/evas-3d-pick.c b/src/examples/evas/evas-3d-pick.c
index 0963675..b98a489 100644
--- a/src/examples/evas/evas-3d-pick.c
+++ b/src/examples/evas/evas-3d-pick.c
@@ -1,3 +1,5 @@
+#define EFL_EO_API_SUPPORT
+#define EFL_BETA_API_SUPPORT
 #include <Ecore.h>
 #include <Ecore_Evas.h>
 #include <stdio.h>
@@ -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);
-
-   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);
-
-   material = evas_3d_material_add(evas);
-   evas_3d_mesh_frame_material_set(mesh, 0, material);
-
-   texture_diffuse = evas_3d_texture_add(evas);
-
-   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(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);
+   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(EVAS_3D_INDEX_FORMAT_UNSIGNED_SHORT, 
index_count, &indices[0]),
+         evas_3d_mesh_vertex_assembly_set(EVAS_3D_VERTEX_ASSEMBLY_TRIANGLES));
+
+   material = eo_add(EVAS_3D_MATERIAL_CLASS, evas);
+   eo_do(mesh, evas_3d_mesh_frame_material_set(0, material));
+
+   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_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.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/src/examples/evas/evas-3d-proxy.c 
b/src/examples/evas/evas-3d-proxy.c
index 8de8bea..1e34dfe 100644
--- a/src/examples/evas/evas-3d-proxy.c
+++ b/src/examples/evas/evas-3d-proxy.c
@@ -1,3 +1,5 @@
+#define EFL_EO_API_SUPPORT
+#define EFL_BETA_API_SUPPORT
 #include <Ecore.h>
 #include <Ecore_Evas.h>
 #include <stdio.h>
@@ -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

-- 


Reply via email to