[prev in list] [next in list] [prev in thread] [next in thread] 

List:       enlightenment-devel
Subject:    Re: [E-devel] [EGIT] [core/efl] master 25/27: evas: Evas_3D - mechanism for finding node by color pi
From:       Tom Hacohen <tom.hacohen () samsung ! com>
Date:       2015-02-23 16:36:36
Message-ID: 54EB5714.5070202 () samsung ! com
[Download RAW message or body]

On 23/02/15 16:30, Oleksandr Shcherbina wrote:
>
>     [1]https://phab.enlightenment.org/D1811
>
>     [2]https://phab.enlightenment.org/D1956
>
>     Do you really see here broken  indentation?

Please fix your mail client (again).

Yes, specifically line 968 compared to 967, but I assume other lines are 
broken too. I don't have the time or the will to review this atm.

--
Tom.


>
>
>     ------- Original Message -------
>
>     Sender : Tom Hacohen<tom.hacohen@samsung.com> Senior Engineer/SRUK-Open
>     Source/Samsung Electronics
>
>     Date : Feb 23, 2015 18:52 (GMT+03:00)
>
>     Title  : Re: [E-devel] [EGIT] [core/efl] master 25/27: evas: Evas_3D -
>     mechanism for finding node by color pick.
>
>
>     CODING CONVENTIONS AND COMMIT GUIDELINES!!!
>     Commit message should be:
>     evas 3d: mechanism...
>     Lines are too long.
>     Indentation is completely broken for this patch.
>     Please start rejecting patches.
>     --
>     Tom.
>     On 11/02/15 17:50, Oleksandr Shcherbina wrote:
>     > cedric pushed a commit to branch master.
>     >
>     >
>     http://git.enlightenment.org/core/efl.git/commit/?id=dc0b144cf09deba3a5a6fe7
>     46f0130b67b5bf64b
>     >
>     > commit dc0b144cf09deba3a5a6fe746f0130b67b5bf64b
>     > Author: Oleksandr Shcherbina
>     > Date:   Wed Feb 11 17:44:42 2015 +0100
>     >
>     >      evas: Evas_3D - mechanism for finding node by color pick.
>     >
>     >      Summary:
>     >      See first part https://phab.enlightenment.org/D1811 (backend, gl)
>     >
>     >      Add get/set for color pick mode at evas_3d_mesh and evas_3d_scene
>     >      Add evas_3d_node_color_node_mesh_collect function to collect data at
>     force rendering
>     >      Add state flag for scene to avoid useless force rendering in case
>     scene wasn't changed
>     >      Add functionality for color pick in evas_3d_scene_pick method
>     >
>     >      Reviewers: Hermet, raster, cedric
>     >
>     >      Reviewed By: cedric
>     >
>     >      Subscribers: cedric
>     >
>     >      Differential Revision: https://phab.enlightenment.org/D1956
>     >
>     >      Signed-off-by: Cedric BAIL
>     > ---
>     >   src/lib/evas/Evas_Eo.h               |   1 +
>     >   src/lib/evas/canvas/evas_3d_mesh.c   |  17 ++++++
>     >   src/lib/evas/canvas/evas_3d_mesh.eo  |  21 +++++++
>     >   src/lib/evas/canvas/evas_3d_node.c   |  71 +++++++++++++++++++++++
>     >               src/lib/evas/canvas/evas_3d_scene.c  |             109
>     +++++++++++++++++++++++++++++++++--
>     >   src/lib/evas/canvas/evas_3d_scene.eo |  21 +++++++
>     >   src/lib/evas/include/evas_private.h  |   8 ++-
>     >   7 files changed, 242 insertions(+), 6 deletions(-)
>     >
>     > diff --git a/src/lib/evas/Evas_Eo.h b/src/lib/evas/Evas_Eo.h
>     > index 8fa89b3..033ada2 100644
>     > --- a/src/lib/evas/Evas_Eo.h
>     > +++ b/src/lib/evas/Evas_Eo.h
>     > @@ -468,6 +468,7 @@ typedef enum _Evas_3D_State
>     >      EVAS_3D_STATE_SCENE_BACKGROUND_COLOR,
>     >      EVAS_3D_STATE_SCENE_SIZE,
>     >      EVAS_3D_STATE_SCENE_SHADOWS_ENABLED,
>     > +   EVAS_3D_STATE_SCENE_UPDATED,
>     >
>     >      EVAS_3D_STATE_TEXTURE_DATA = 1,
>     >      EVAS_3D_STATE_TEXTURE_WRAP,
>     >        diff        --git        a/src/lib/evas/canvas/evas_3d_mesh.c
>     b/src/lib/evas/canvas/evas_3d_mesh.c
>     > index ddbf619..44304380 100644
>     > --- a/src/lib/evas/canvas/evas_3d_mesh.c
>     > +++ b/src/lib/evas/canvas/evas_3d_mesh.c
>     > @@ -120,6 +120,9 @@ _mesh_init(Evas_3D_Mesh_Data *pd)
>     >      pd->blend_sfactor = EVAS_3D_BLEND_ONE;
>     >      pd->blend_dfactor = EVAS_3D_BLEND_ZERO;
>     >      pd->blending = EINA_FALSE;
>     > +
>     > +   pd->color_pick_key = -1.0;
>     > +   pd->color_pick_enabled = EINA_FALSE;
>     >   }
>     >
>     >   static inline void
>     > @@ -963,4 +966,18 @@
>     evas_3d_mesh_interpolate_vertex_buffer_get(Evas_3D_Mesh *mesh, int frame,
>     >        }
>     >   }
>     >
>     > +EOLIAN static Eina_Bool
>     >     +_evas_3d_mesh_color_pick_enable_get(Eo     *obj    EINA_UNUSED,
>     Evas_3D_Mesh_Data *pd)
>     > +{
>     > +   return pd->color_pick_enabled;
>     > +}
>     > +EOLIAN static Eina_Bool
>     > +_evas_3d_mesh_color_pick_enable_set(Eo *obj, Evas_3D_Mesh_Data *pd,
>     Eina_Bool _enabled)
>     > +{
>     > +   if (pd->color_pick_enabled != _enabled)
>     > +     pd->color_pick_enabled = _enabled;
>     >  +   eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_MESH_COLOR_PICK,
>     NULL));
>     > +   return EINA_TRUE;
>     > +}
>     > +
>     >   #include "canvas/evas_3d_mesh.eo.c"
>     >        diff        --git       a/src/lib/evas/canvas/evas_3d_mesh.eo
>     b/src/lib/evas/canvas/evas_3d_mesh.eo
>     > index 5657b32..a23654a 100644
>     > --- a/src/lib/evas/canvas/evas_3d_mesh.eo
>     > +++ b/src/lib/evas/canvas/evas_3d_mesh.eo
>     >   @@   -352,6   +352,27   @@   class  Evas_3D_Mesh  (Evas_3D_Object,
>     Evas.Common_Interface, Efl.File)
>     >            params {
>     >            }
>     >         }
>     > +      color_pick_enable_get @const {
>     > +         /*
>     > +           Get status of color picking of the mesh.
>     > +
>     > +           @ingroup Evas_3D_Mesh
>     > +          */
>     > +         return: bool;
>     > +         params {
>     > +         }
>     > +      }
>     > +      color_pick_enable_set {
>     > +         /*
>     > +           Set posibility color picking.
>     > +
>     > +           @ingroup Evas_3D_Mesh
>     > +          */
>     > +         return: bool;
>     > +         params {
>     > +            @in bool _enabled;  /*@ Posibility flag */
>     > +         }
>     > +      }
>     >      }
>     >      properties {
>     >         shade_mode {
>     >        diff        --git        a/src/lib/evas/canvas/evas_3d_node.c
>     b/src/lib/evas/canvas/evas_3d_node.c
>     > index a5355ed..62e2c1c 100644
>     > --- a/src/lib/evas/canvas/evas_3d_node.c
>     > +++ b/src/lib/evas/canvas/evas_3d_node.c
>     > @@ -6,6 +6,27 @@
>     >
>     >   Evas_3D_Mesh_Frame *evas_3d_mesh_frame_find(Evas_3D_Mesh_Data *pd, int
>     frame);
>     >
>     > +static Eina_Stringshare *
>     >  +_generate_unic_color_key(Evas_Color  *color, Evas_Color *bg_color,
>     Evas_3D_Node *node, Evas_3D_Mesh *mesh,
>     > +                         Eina_Bool init)
>     > +{
>     > +   static unsigned short red = USHRT_MAX;
>     > +
>     > +   if (init) red = USHRT_MAX;
>     > +
>     > +   if (fabs(bg_color->r - (double)red) <= DBL_EPSILON) red--;
>     > +
>     > +   color->r = (double)red / USHRT_MAX;
>     > +   color->g = 0.0;
>     > +   color->b = 0.0;
>     > +
>     > +   red--;
>     > +
>     > +   if (red < 1) red = USHRT_MAX;
>     > +
>     > +   return eina_stringshare_printf("%p %p", node, mesh);
>     > +}
>     > +
>     >   static inline Evas_3D_Node_Mesh *
>     >   _node_mesh_new(Evas_3D_Node *node, Evas_3D_Mesh *mesh)
>     >   {
>     > @@ -795,6 +816,56 @@ evas_3d_node_mesh_collect(Evas_3D_Node *node, void
>     *data)
>     >   }
>     >
>     >   Eina_Bool
>     > +evas_3d_node_color_node_mesh_collect(Evas_3D_Node *node, void *data)
>     > +{
>     > +   Evas_3D_Scene_Public_Data *scene_data = (Evas_3D_Scene_Public_Data
>     *)data;
>     > +   Evas_3D_Node_Data *pd = eo_data_scope_get(node, MY_CLASS);
>     > +   Evas_3D_Node_Data *pd_camera =
>     eo_data_scope_get(scene_data->camera_node, MY_CLASS);
>     > +   Evas_3D_Camera *camera =
>     (Evas_3D_Camera*)pd_camera->data.camera.camera;
>     > +
>     > +   Eina_List *list_meshes, *l;
>     > +   Evas_3D_Mesh *mesh;
>     > +   Eina_Stringshare *key, *datakey;
>     > +   Evas_Color *color;
>     > +   Eina_Bool visible = EINA_FALSE;
>     > +   Eina_Array *arr;
>     > +   if (pd->type == EVAS_3D_NODE_TYPE_MESH)
>     > +     {
>     > +        eo_do(camera,
>     > +              visible =
>     evas_3d_camera_node_visible_get(scene_data->camera_node,
>     >       +                                                        node,
>     EVAS_3D_FRUSTUM_MODE_BSPHERE));
>     > +        if (visible)
>     > +          {
>     >    +                eo_do    (node,    list_meshes    =   (Eina_List
>     *)evas_3d_node_mesh_list_get());
>     > +             EINA_LIST_FOREACH(list_meshes, l, mesh)
>     > +               {
>     > +                 if (eo_do(mesh, evas_3d_mesh_color_pick_enable_get()))
>     > +                   {
>     > +                      color = calloc(1, sizeof(Evas_Color));
>     > +
>     > +                      if
>     (!eina_hash_population(scene_data->node_mesh_colors))
>     >   +                        key   =   _generate_unic_color_key(color,
>     &scene_data->bg_color,
>     >  +                                                       node, mesh,
>     EINA_TRUE);
>     > +                      else
>     >   +                        key   =   _generate_unic_color_key(color,
>     &scene_data->bg_color,
>     >  +                                                       node, mesh,
>     EINA_FALSE);
>     > +
>     > +                      datakey = eina_stringshare_printf("%f %f %f",
>     color->r, color->g, color->b);
>     > +                      eina_hash_add(scene_data->node_mesh_colors, key,
>     color);
>     > +                      arr = eina_array_new(2);
>     > +                      eina_array_push(arr, (void *)node);
>     > +                      eina_array_push(arr, (void *)mesh);
>     >   +                      eina_hash_add(scene_data->colors_node_mesh,
>     datakey, arr);
>     > +                   }
>     > +               }
>     > +           }
>     > +        else
>     > +          return EINA_FALSE;
>     > +     }
>     > +   return EINA_TRUE;
>     > +}
>     > +
>     > +Eina_Bool
>     >   evas_3d_node_light_collect(Evas_3D_Node *node, void *data)
>     >   {
>     >      Evas_3D_Scene_Public_Data *scene_data = (Evas_3D_Scene_Public_Data
>     *)data;
>     >        diff        --git       a/src/lib/evas/canvas/evas_3d_scene.c
>     b/src/lib/evas/canvas/evas_3d_scene.c
>     > index 0e177a7..a26b6c8 100644
>     > --- a/src/lib/evas/canvas/evas_3d_scene.c
>     > +++ b/src/lib/evas/canvas/evas_3d_scene.c
>     > @@ -9,6 +9,8 @@ evas_3d_scene_data_init(Evas_3D_Scene_Public_Data *data)
>     >      data->camera_node = NULL;
>     >      data->light_nodes = NULL;
>     >      data->mesh_nodes = NULL;
>     > +   data->node_mesh_colors = NULL;
>     > +   data->colors_node_mesh = NULL;
>     >   }
>     >
>     >   void
>     > @@ -46,6 +48,8 @@ _evas_3d_scene_evas_3d_object_update_notify(Eo *obj
>     EINA_UNUSED, Evas_3D_Scene_D
>     >        {
>     >           eo_do(pd->camera_node, evas_3d_object_update());
>     >        }
>     > +
>     > +   eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_SCENE_UPDATED, NULL));
>     >   }
>     >
>     >   EAPI Evas_3D_Scene *
>     >   @@  -65,6  +69,9  @@  _evas_3d_scene_eo_base_constructor(Eo  *obj,
>     Evas_3D_Scene_Data *pd)
>     >      eo_do(obj, evas_3d_object_type_set(EVAS_3D_OBJECT_TYPE_SCENE));
>     >      evas_color_set(&pd->bg_color, 0.0, 0.0, 0.0, 0.0);
>     >      pd->shadows_enabled = EINA_FALSE;
>     > +   pd->color_pick_enabled = EINA_FALSE;
>     > +   pd->node_mesh_colors = NULL;
>     > +   pd->colors_node_mesh = NULL;
>     >   }
>     >
>     >   EOLIAN static void
>     > @@ -608,17 +615,32 @@ _node_pick(Evas_3D_Node *node, void *data)
>     >      return EINA_TRUE;
>     >   }
>     >
>     > +static void _node_mesh_colors_free_cb(void *data)
>     > +{
>     > +   if (data) free(data);
>     > +}
>     > +
>     >   EOLIAN static Eina_Bool
>     >    _evas_3d_scene_pick(Eo *obj, Evas_3D_Scene_Data *pd, Evas_Real x,
>     Evas_Real y,
>     >                       Evas_3D_Node **node, Evas_3D_Mesh **mesh,
>     >                       Evas_Real *s, Evas_Real *t)
>     >   {
>     > -   /* TODO: Use H/W picking if availabe. */
>     >      Evas_3D_Pick_Data data;
>     > +   Evas_3D_Node_Data *pd_camera_node;
>     > +   Evas_3D_Camera_Data *pd_camera;
>     > +   Evas_3D_Object_Data *pd_parent;
>     > +   Evas_Public_Data *e;
>     > +   int tex, px, py;;
>     > +   double redcomponent;
>     > +   Eina_Stringshare *tmp;
>     > +   Eina_Array *arr = NULL;
>     > +   Eina_Bool update_scene = EINA_FALSE;
>     > +
>     > +   pd_parent = eo_data_scope_get(obj, EVAS_3D_OBJECT_CLASS);
>     > +   e = eo_data_scope_get(pd_parent->evas, EVAS_CANVAS_CLASS);
>     >
>     >      data.x      = ((x * 2.0) / (Evas_Real)pd->w) - 1.0;
>     >      data.y      = (((pd->h - y - 1) * 2.0) / ((Evas_Real)pd->h)) - 1.0;
>     > -
>     >      data.picked = EINA_FALSE;
>     >      data.z      = 1.0;
>     >      data.node   = NULL;
>     > @@ -626,17 +648,78 @@ _evas_3d_scene_pick(Eo *obj, Evas_3D_Scene_Data *pd,
>     Evas_Real x, Evas_Real y,
>     >      data.s      = 0.0;
>     >      data.t      = 0.0;
>     >
>     > +   px = round(x * pd->w / e->viewport.w);
>     > +   py = round((pd->h - (y * pd->h / e->viewport.h) - 1));
>     > +
>     > +   /*Use color pick mechanism finding node and mesh*/
>     > +   if (pd->color_pick_enabled)
>     > +     {
>     > +        Evas_3D_Scene_Public_Data scene_data;
>     > +
>     > +        scene_data.bg_color = pd->bg_color;
>     > +        scene_data.shadows_enabled = pd->shadows_enabled;
>     > +        scene_data.camera_node = pd->camera_node;
>     > +        scene_data.color_pick_enabled = pd->color_pick_enabled;
>     > +        update_scene = eo_do(obj,
>     evas_3d_object_dirty_get(EVAS_3D_STATE_SCENE_UPDATED));
>     > +        if (update_scene)
>     > +          {
>     > +             if (pd->node_mesh_colors)
>     > +               {
>     > +                  eina_hash_free(pd->node_mesh_colors);
>     > +                  eina_hash_free(pd->colors_node_mesh);
>     > +                  pd->node_mesh_colors = NULL;
>     > +                  pd->colors_node_mesh = NULL;
>     > +               }
>     > +             pd->node_mesh_colors =
>     eina_hash_stringshared_new(_node_mesh_colors_free_cb);
>     > +             pd->colors_node_mesh =
>     eina_hash_stringshared_new(_node_mesh_colors_free_cb);
>     > +          }
>     > +        scene_data.node_mesh_colors = pd->node_mesh_colors;
>     > +        scene_data.colors_node_mesh = pd->colors_node_mesh;
>     > +        evas_3d_node_tree_traverse(pd->root_node,
>     > +                                   EVAS_3D_TREE_TRAVERSE_LEVEL_ORDER,
>     EINA_TRUE,
>     >+                                 evas_3d_node_color_node_mesh_collect,
>     &scene_data);
>     > +
>     > +        if (e->engine.func->drawable_scene_render_to_texture)
>     > +          {
>     > +             if
>     (e->engine.func->drawable_scene_render_to_texture(e->engine.data.output,
>     > +                                                         pd->surface,
>     &scene_data))
>     > +               {
>     > +                  if (e->engine.func->drawable_texture_color_pick_id_get)
>     > +                    tex =
>     e->engine.func->drawable_texture_color_pick_id_get(pd->surface);
>     > +                  if (e->engine.func->drawable_texture_pixel_color_get)
>     > +                    {
>     > +                       redcomponent =
>     e->engine.func->drawable_texture_pixel_color_get(tex, px, py, pd->surface);
>     >  +                        tmp  = eina_stringshare_printf("%f %f %f",
>     redcomponent, 0.0, 0.0);
>     > +                       arr = (Eina_Array
>     *)eina_hash_find(pd->colors_node_mesh, tmp);
>     > +                       if (arr)
>     > +                         {
>     >   +                            if   (mesh)   *mesh  =  (Evas_3D_Mesh
>     *)eina_array_data_get(arr, 1);
>     >   +                            if   (node)   *node  =  (Evas_3D_Node
>     *)eina_array_data_get(arr, 0);
>     > +                            eina_stringshare_del(tmp);
>     > +
>     > +                            return EINA_TRUE;
>     > +                         }
>     > +                       else
>     > +                         {
>     > +                            eina_stringshare_del(tmp);
>     > +                            if (mesh) *mesh = NULL;
>     > +                            if (node) *node = NULL;
>     > +                         }
>     > +                    }
>     > +               }
>     > +          }
>     > +        return EINA_FALSE;
>     > +     }
>     >      /* Update the scene graph. */
>     >      eo_do(obj, evas_3d_object_update());
>     > -   Evas_3D_Node_Data *pd_camera_node = eo_data_scope_get(pd->camera_node,
>     EVAS_3D_NODE_CLASS);
>     > -   Evas_3D_Camera_Data *pd_camera =
>     eo_data_scope_get(pd_camera_node->data.camera.camera, EVAS_3D_CAMERA_CLASS);
>     >     +      pd_camera_node    =    eo_data_scope_get(pd->camera_node,
>     EVAS_3D_NODE_CLASS);
>     > +   pd_camera = eo_data_scope_get(pd_camera_node->data.camera.camera,
>     EVAS_3D_CAMERA_CLASS);
>     >      evas_mat4_multiply(&data.matrix_vp,
>     >                         &pd_camera->projection,
>     >                         &pd_camera_node->data.camera.matrix_world_to_eye);
>     >
>     >      evas_ray3_init(&data.ray_world, data.x, data.y, &data.matrix_vp);
>     >
>     > -
>     >      /* Traverse tree while adding meshes into pick data structure. */
>     >      evas_3d_node_tree_traverse(pd->root_node,
>     EVAS_3D_TREE_TRAVERSE_LEVEL_ORDER, EINA_TRUE,
>     >                                 _node_pick, &data);
>     >  @@  -726,4  +809,20  @@  _evas_3d_scene_shadows_enable_set(Eo  *obj
>     EINA_UNUSED, Evas_3D_Scene_Data *pd, E
>     >      eo_do(obj,evas_3d_object_change(EVAS_3D_STATE_SCENE_SHADOWS_ENABLED,
>     NULL));
>     >   }
>     >
>     > +EOLIAN static Eina_Bool
>     >     +_evas_3d_scene_color_pick_enable_get(Eo    *obj    EINA_UNUSED,
>     Evas_3D_Scene_Data *pd)
>     > +{
>     > +   return pd->color_pick_enabled;
>     > +}
>     > +
>     > +EOLIAN static Eina_Bool
>     >     +_evas_3d_scene_color_pick_enable_set(Eo    *obj    EINA_UNUSED,
>     Evas_3D_Scene_Data *pd, Eina_Bool _enabled)
>     > +{
>     > +   if (pd->color_pick_enabled != _enabled)
>     > +     pd->color_pick_enabled = _enabled;
>     > +
>     > +   eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_SCENE_UPDATED, NULL));
>     > +   return EINA_TRUE;
>     > +}
>     > +
>     >   #include "canvas/evas_3d_scene.eo.c"
>     >        diff       --git       a/src/lib/evas/canvas/evas_3d_scene.eo
>     b/src/lib/evas/canvas/evas_3d_scene.eo
>     > index 1078c02..bb25f90 100644
>     > --- a/src/lib/evas/canvas/evas_3d_scene.eo
>     > +++ b/src/lib/evas/canvas/evas_3d_scene.eo
>     >   @@   -136,6   +136,27   @@  class  Evas_3D_Scene  (Evas_3D_Object,
>     Evas.Common_Interface)
>     >            params {
>     >            }
>     >         }
>     > +      color_pick_enable_get @const {
>     > +         /*
>     > +           Get status of color picking of the scene.
>     > +
>     > +           @ingroup Evas_3D_Scene
>     > +          */
>     > +         return: bool;
>     > +         params {
>     > +         }
>     > +      }
>     > +      color_pick_enable_set {
>     > +         /*
>     > +           Set posibility color picking.
>     > +
>     > +           @ingroup Evas_3D_Scene
>     > +          */
>     > +         return: bool;
>     > +         params {
>     > +            @in bool color_pick;  /*@ Posibility flag */
>     > +         }
>     > +      }
>     >      }
>     >      properties {
>     >
>     >        diff        --git       a/src/lib/evas/include/evas_private.h
>     b/src/lib/evas/include/evas_private.h
>     > index c07cfa3..ceab19d 100644
>     > --- a/src/lib/evas/include/evas_private.h
>     > +++ b/src/lib/evas/include/evas_private.h
>     > @@ -191,11 +191,15 @@ struct _Evas_3D_Scene
>     >      Evas_3D_Node     *root_node;
>     >      Evas_3D_Node     *camera_node;
>     >      Evas_Color       bg_color;
>     > +   Eina_Bool        shadows_enabled :1;
>     > +   Eina_Bool        color_pick_enabled :1;
>     >
>     >      void             *surface;
>     >      int               w, h;
>     >      Eina_List        *images;
>     > -   Eina_Bool        shadows_enabled :1;
>     > +
>     > +   Eina_Hash        *node_mesh_colors;
>     > +   Eina_Hash        *colors_node_mesh;
>     >   };
>     >
>     >   struct _Evas_3D_Node_Mesh
>     > @@ -380,6 +384,7 @@ struct _Evas_3D_Scene_Public_Data
>     >      Eina_List        *mesh_nodes;
>     >      Eina_Bool        shadows_enabled :1;
>     >      Eina_Bool        color_pick_enabled :1;
>     > +
>     >      Eina_Hash        *node_mesh_colors;
>     >      Eina_Hash        *colors_node_mesh;
>     >   };
>     > @@ -1628,6 +1633,7 @@ void _canvas_smart_objects_calculate_count_get(Eo
>     *e, void *_pd, va_list *list);
>     >    void  evas_3d_node_traverse(Evas_3D_Node *from, Evas_3D_Node *to,
>     Evas_3D_Node_Traverse_Type type, Eina_Bool skip, Evas_3D_Node_Func func,
>     void *data);
>     >        void      evas_3d_node_tree_traverse(Evas_3D_Node      *root,
>     Evas_3D_Tree_Traverse_Type type, Eina_Bool skip, Evas_3D_Node_Func func,
>     void *data);
>     >   Eina_Bool evas_3d_node_mesh_collect(Evas_3D_Node *node, void *data);
>     > +Eina_Bool evas_3d_node_color_node_mesh_collect(Evas_3D_Node *node, void
>     *data);
>     >   Eina_Bool evas_3d_node_light_collect(Evas_3D_Node *node, void *data);
>     >   void evas_3d_node_scene_root_add(Evas_3D_Node *node, Evas_3D_Scene
>     *scene);
>     >   void evas_3d_node_scene_root_del(Evas_3D_Node *node, Evas_3D_Scene
>     *scene);
>     >
>     *
>     ----------------------------------------------------------------------------
>     --
>     Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
>     from Actuate! Instantly Supercharge Your Business Reports and Dashboards
>     with Interactivity, Sharing, Native Excel Exports, App Integration & more
>     Get technology previously reserved for billion-dollar corporations, FREE
>     http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk
>     _______________________________________________
>     enlightenment-devel mailing list
>     enlightenment-devel@lists.sourceforge.net
>     https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>
>
>     With best regards,
>
>     Oleksander Shcherbina
>
>     SRK-Tizen Platform Lab
>
>     Samsung Ukraine R&D Institute
>
>     57 L'va Tolstogo Str., Kyiv 01032, Ukraine
>
>     Mob.: +380 (66) 1297544
>
>     o.shcherbina@samsung.com
>
>
>
>
>     [cid:T9SZN3WZA6X7@namo.co.kr]
>
>     [SeenTimeChecker?do=0966c73de79aa0464bb17ed4340b993d4757d1278ede9eff28d6023d
>     ffbae032ba777c355c197185c465c2cf80a2b7ef9aba4bb3b2b5ca43ddd7e184e0604d958075
>     b6b33f32d245be7a12499853ada082afa00ff4b36e9acf878f9a26ce15a0]
>
> References
>
>     1. https://phab.enlightenment.org/D1811
>     2. https://phab.enlightenment.org/D1956
>
>
>
> ------------------------------------------------------------------------------
> Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
> from Actuate! Instantly Supercharge Your Business Reports and Dashboards
> with Interactivity, Sharing, Native Excel Exports, App Integration & more
> Get technology previously reserved for billion-dollar corporations, FREE
> http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk
>
>
>
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>



------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic