evas/evas3d: cleanup docs and removed unncessary files.
authorChunEon Park <chuneon.park@samsung.com>
Wed, 16 Apr 2014 07:31:14 +0000 (16:31 +0900)
committerChunEon Park <hermet@hermet.pe.kr>
Fri, 25 Apr 2014 08:34:11 +0000 (17:34 +0900)
Conflicts:

src/lib/evas/Evas_Legacy.h

src/Makefile_Evas.am
src/lib/evas/Evas_Common.h
src/lib/evas/include/evas_3d_private.h [deleted file]
src/lib/evas/include/evas_3d_utils.h
src/lib/evas/include/evas_private.h

index a20b5db..0648709 100644 (file)
@@ -284,8 +284,7 @@ lib_evas_libevas_la_SOURCES += \
 $(lib_evas_file_SOURCES)
 
 noinst_HEADERS += \
-lib/evas/include/evas_3d_utils.h \
-lib/evas/include/evas_3d_private.h
+lib/evas/include/evas_3d_utils.h
 
 lib_evas_libevas_la_SOURCES += \
 lib/evas/canvas/evas_3d_object.c \
index 6912d96..bab22af 100644 (file)
@@ -134,71 +134,6 @@ typedef enum _Evas_Callback_Type
  */
 typedef Eo_Callback_Priority Evas_Callback_Priority;
 
-// 3D Stuff
-typedef enum _Evas_3D_Object_Type
-{
-   EVAS_3D_OBJECT_TYPE_INVALID = 0,
-   EVAS_3D_OBJECT_TYPE_SCENE,
-   EVAS_3D_OBJECT_TYPE_NODE,
-   EVAS_3D_OBJECT_TYPE_CAMERA,
-   EVAS_3D_OBJECT_TYPE_LIGHT,
-   EVAS_3D_OBJECT_TYPE_MODEL,
-   EVAS_3D_OBJECT_TYPE_MESH,
-   EVAS_3D_OBJECT_TYPE_TEXTURE,
-   EVAS_3D_OBJECT_TYPE_MATERIAL,
-} Evas_3D_Object_Type;
-
-typedef enum _Evas_3D_State
-{
-   EVAS_3D_STATE_MAX = 16,
-
-   EVAS_3D_STATE_ANY = 0,
-
-   EVAS_3D_STATE_SCENE_ROOT_NODE = 1,
-   EVAS_3D_STATE_SCENE_CAMERA_NODE,
-   EVAS_3D_STATE_SCENE_BACKGROUND_COLOR,
-   EVAS_3D_STATE_SCENE_SIZE,
-
-   EVAS_3D_STATE_TEXTURE_DATA = 1,
-   EVAS_3D_STATE_TEXTURE_WRAP,
-   EVAS_3D_STATE_TEXTURE_FILTER,
-
-   EVAS_3D_STATE_MATERIAL_ID = 1,
-   EVAS_3D_STATE_MATERIAL_COLOR,
-   EVAS_3D_STATE_MATERIAL_TEXTURE,
-
-   EVAS_3D_STATE_MESH_VERTEX_COUNT = 1,
-   EVAS_3D_STATE_MESH_FRAME,
-   EVAS_3D_STATE_MESH_MATERIAL,
-   EVAS_3D_STATE_MESH_TRANSFORM,
-   EVAS_3D_STATE_MESH_VERTEX_DATA,
-   EVAS_3D_STATE_MESH_INDEX_DATA,
-   EVAS_3D_STATE_MESH_VERTEX_ASSEMBLY,
-   EVAS_3D_STATE_MESH_SHADE_MODE,
-
-   EVAS_3D_STATE_CAMERA_PROJECTION = 1,
-
-   EVAS_3D_STATE_LIGHT_AMBIENT = 1,
-   EVAS_3D_STATE_LIGHT_DIFFUSE,
-   EVAS_3D_STATE_LIGHT_SPECULAR,
-   EVAS_3D_STATE_LIGHT_SPOT_DIR,
-   EVAS_3D_STATE_LIGHT_SPOT_EXP,
-   EVAS_3D_STATE_LIGHT_SPOT_CUTOFF,
-   EVAS_3D_STATE_LIGHT_ATTENUATION,
-
-   EVAS_3D_STATE_NODE_TRANSFORM = 1,
-   EVAS_3D_STATE_NODE_MESH_GEOMETRY,
-   EVAS_3D_STATE_NODE_MESH_MATERIAL,
-   EVAS_3D_STATE_NODE_MESH_FRAME,
-   EVAS_3D_STATE_NODE_MESH_SHADE_MODE,
-   EVAS_3D_STATE_NODE_MESH_MATERIAL_ID,
-   EVAS_3D_STATE_NODE_LIGHT,
-   EVAS_3D_STATE_NODE_CAMERA,
-   EVAS_3D_STATE_NODE_PARENT,
-   EVAS_3D_STATE_NODE_MEMBER,
-} Evas_3D_State;
-
-
 /**
  * Flags for Mouse Button events
  */
@@ -5357,8 +5292,6 @@ EAPI const Eina_List        *evas_font_path_global_list(void) EINA_WARN_UNUSED_R
  */
 
 
- // 3D stuff
-
  /**
  * @defgroup Evas_3D Evas 3D Extensions
  *
@@ -5370,7 +5303,7 @@ EAPI const Eina_List        *evas_font_path_global_list(void) EINA_WARN_UNUSED_R
 /**
  * @page evas_3d_main Evas 3D
  *
- * @date 2014 (created)
+ * @since 1.10
  *
  * @section toc Table of Contents
  *
@@ -5452,7 +5385,7 @@ EAPI const Eina_List        *evas_font_path_global_list(void) EINA_WARN_UNUSED_R
  * @ingroup Evas_3D
  *
  * A node is used for hierarchical construction of a scene graph. Evas 3D
- * provides n-ary tree structure for the scene graph construction.A node has
+ * provides n-ary tree structure for the scene graph construction. A node has
  * its position, orientation and scale. Other objects, like camera, light and
  * mesh can be contained in a node to be located in a 3D space.
  */
@@ -5530,11 +5463,20 @@ EAPI const Eina_List        *evas_font_path_global_list(void) EINA_WARN_UNUSED_R
  * 754 floating-point type always use Evas_Real for the type safety. Double
  * precision and fixed-point types will be useful but it's not supported yet.
  *
+ * @since 1.10
  * @ingroup Evas_3D_Types
  */
 typedef double   Evas_Real;
 
 
+/**
+ * @typedef Evas_3D_Object
+ *
+ * 3D Object object handle
+ *
+ * @since 1.10
+ * @ingroup Evas_3D_Object
+ */
 typedef Eo    Evas_3D_Object;
 
 /**
@@ -5542,6 +5484,7 @@ typedef Eo    Evas_3D_Object;
  *
  * Scene object handle
  *
+ * @since 1.10
  * @ingroup Evas_3D_Scene
  */
 typedef Eo    Evas_3D_Scene;
@@ -5551,6 +5494,7 @@ typedef Eo    Evas_3D_Scene;
  *
  * Node object handle
  *
+ * @since 1.10
  * @ingroup Evas_3D_Node
  */
 typedef Eo     Evas_3D_Node;
@@ -5560,6 +5504,7 @@ typedef Eo     Evas_3D_Node;
  *
  * Camera object handle
  *
+ * @since 1.10
  * @ingroup Evas_3D_Camera
  */
 typedef Eo   Evas_3D_Camera;
@@ -5569,6 +5514,7 @@ typedef Eo   Evas_3D_Camera;
  *
  * Light object handle
  *
+ * @since 1.10
  * @ingroup Evas_3D_Light
  */
 typedef Eo    Evas_3D_Light;
@@ -5578,6 +5524,7 @@ typedef Eo    Evas_3D_Light;
  *
  * Mesh object handle
  *
+ * @since 1.10
  * @ingroup Evas_3D_Mesh
  */
 typedef Eo     Evas_3D_Mesh;
@@ -5587,6 +5534,7 @@ typedef Eo     Evas_3D_Mesh;
  *
  * Texture object handle
  *
+ * @since 1.10
  * @ingroup Evas_3D_Texture
  */
 typedef Eo    Evas_3D_Texture;
@@ -5596,227 +5544,310 @@ typedef Eo    Evas_3D_Texture;
  *
  * Material object handle
  *
+ * @since 1.10
  * @ingroup Evas_3D_Material
  */
 typedef Eo     Evas_3D_Material;
 
 /**
+ * Type of 3D Object
+ *
+ * @since 1.10
+ * @ingroup Evas_3D_Type
+ */
+typedef enum _Evas_3D_Object_Type
+{
+   EVAS_3D_OBJECT_TYPE_INVALID = 0,
+   EVAS_3D_OBJECT_TYPE_SCENE,
+   EVAS_3D_OBJECT_TYPE_NODE,
+   EVAS_3D_OBJECT_TYPE_CAMERA,
+   EVAS_3D_OBJECT_TYPE_LIGHT,
+   EVAS_3D_OBJECT_TYPE_MODEL,
+   EVAS_3D_OBJECT_TYPE_MESH,
+   EVAS_3D_OBJECT_TYPE_TEXTURE,
+   EVAS_3D_OBJECT_TYPE_MATERIAL,
+} Evas_3D_Object_Type;
+
+/**
+ * State of the Evas 3D
+ *
+ * @since 1.10
+ * @ingroup Evas_3D_Type
+ */
+typedef enum _Evas_3D_State
+{
+   EVAS_3D_STATE_MAX = 16,
+
+   EVAS_3D_STATE_ANY = 0,
+
+   EVAS_3D_STATE_SCENE_ROOT_NODE = 1,
+   EVAS_3D_STATE_SCENE_CAMERA_NODE,
+   EVAS_3D_STATE_SCENE_BACKGROUND_COLOR,
+   EVAS_3D_STATE_SCENE_SIZE,
+
+   EVAS_3D_STATE_TEXTURE_DATA = 1,
+   EVAS_3D_STATE_TEXTURE_WRAP,
+   EVAS_3D_STATE_TEXTURE_FILTER,
+
+   EVAS_3D_STATE_MATERIAL_ID = 1,
+   EVAS_3D_STATE_MATERIAL_COLOR,
+   EVAS_3D_STATE_MATERIAL_TEXTURE,
+
+   EVAS_3D_STATE_MESH_VERTEX_COUNT = 1,
+   EVAS_3D_STATE_MESH_FRAME,
+   EVAS_3D_STATE_MESH_MATERIAL,
+   EVAS_3D_STATE_MESH_TRANSFORM,
+   EVAS_3D_STATE_MESH_VERTEX_DATA,
+   EVAS_3D_STATE_MESH_INDEX_DATA,
+   EVAS_3D_STATE_MESH_VERTEX_ASSEMBLY,
+   EVAS_3D_STATE_MESH_SHADE_MODE,
+
+   EVAS_3D_STATE_CAMERA_PROJECTION = 1,
+
+   EVAS_3D_STATE_LIGHT_AMBIENT = 1,
+   EVAS_3D_STATE_LIGHT_DIFFUSE,
+   EVAS_3D_STATE_LIGHT_SPECULAR,
+   EVAS_3D_STATE_LIGHT_SPOT_DIR,
+   EVAS_3D_STATE_LIGHT_SPOT_EXP,
+   EVAS_3D_STATE_LIGHT_SPOT_CUTOFF,
+   EVAS_3D_STATE_LIGHT_ATTENUATION,
+
+   EVAS_3D_STATE_NODE_TRANSFORM = 1,
+   EVAS_3D_STATE_NODE_MESH_GEOMETRY,
+   EVAS_3D_STATE_NODE_MESH_MATERIAL,
+   EVAS_3D_STATE_NODE_MESH_FRAME,
+   EVAS_3D_STATE_NODE_MESH_SHADE_MODE,
+   EVAS_3D_STATE_NODE_MESH_MATERIAL_ID,
+   EVAS_3D_STATE_NODE_LIGHT,
+   EVAS_3D_STATE_NODE_CAMERA,
+   EVAS_3D_STATE_NODE_PARENT,
+   EVAS_3D_STATE_NODE_MEMBER,
+} Evas_3D_State;
+
+/**
  * Transform space
+ *
+ * @since 1.10
  * @ingroup Evas_3D_Types
  */
 typedef enum _Evas_3D_Space
 {
-   EVAS_3D_SPACE_LOCAL,    /**< Local coordinate space */
-   EVAS_3D_SPACE_PARENT,   /**< Parent coordinate space */
-   EVAS_3D_SPACE_WORLD,    /**< World coordinate space */
+   EVAS_3D_SPACE_LOCAL = 0, /**< Local coordinate space */
+   EVAS_3D_SPACE_PARENT,    /**< Parent coordinate space */
+   EVAS_3D_SPACE_WORLD,     /**< World coordinate space */
 } Evas_3D_Space;
 
 /**
  * Types of a node
+ *
+ * @since 1.10
  * @ingroup Evas_3D_Types
  */
 typedef enum _Evas_3D_Node_Type
 {
-   EVAS_3D_NODE_TYPE_NODE,    /**< Node with no items */
-   EVAS_3D_NODE_TYPE_CAMERA,  /**< Node which can contain camera object */
-   EVAS_3D_NODE_TYPE_LIGHT,   /**< Node which can contain light object */
-   EVAS_3D_NODE_TYPE_MESH,    /**< Node which can contain mesh objects */
+   EVAS_3D_NODE_TYPE_NODE = 0, /**< Node with no items */
+   EVAS_3D_NODE_TYPE_CAMERA,   /**< Node which can contain camera object */
+   EVAS_3D_NODE_TYPE_LIGHT,    /**< Node which can contain light object */
+   EVAS_3D_NODE_TYPE_MESH,     /**< Node which can contain mesh objects */
 } Evas_3D_Node_Type;
 
 /**
  * Vertex attribute IDs
+ *
+ * @since 1.10
  * @ingroup Evas_3D_Types
  */
 typedef enum _Evas_3D_Vertex_Attrib
 {
-   EVAS_3D_VERTEX_POSITION,   /**< Vertex position */
-   EVAS_3D_VERTEX_NORMAL,     /**< Vertex normal */
-   EVAS_3D_VERTEX_TANGENT,    /**< Vertex tangent (for normal mapping) */
-   EVAS_3D_VERTEX_COLOR,      /**< Vertex color */
-   EVAS_3D_VERTEX_TEXCOORD,   /**< Vertex texture coordinate */
+   EVAS_3D_VERTEX_POSITION = 0,   /**< Vertex position */
+   EVAS_3D_VERTEX_NORMAL,         /**< Vertex normal */
+   EVAS_3D_VERTEX_TANGENT,        /**< Vertex tangent (for normal mapping) */
+   EVAS_3D_VERTEX_COLOR,          /**< Vertex color */
+   EVAS_3D_VERTEX_TEXCOORD,       /**< Vertex texture coordinate */
 } Evas_3D_Vertex_Attrib;
 
 /**
  * Index formats
+ *
+ * @since 1.10
  * @ingroup Evas_3D_Types
  */
 typedef enum _Evas_3D_Index_Format
 {
-   EVAS_3D_INDEX_FORMAT_NONE,             /**< Indexing is not used */
-   EVAS_3D_INDEX_FORMAT_UNSIGNED_BYTE,    /**< Index is of type unsigned byte */
-   EVAS_3D_INDEX_FORMAT_UNSIGNED_SHORT  /**< Index is of type unsigned short */
+   EVAS_3D_INDEX_FORMAT_NONE = 0,       /**< Indexing is not used */
+   EVAS_3D_INDEX_FORMAT_UNSIGNED_BYTE,  /**< Index is of type unsigned byte */
+   EVAS_3D_INDEX_FORMAT_UNSIGNED_SHORT  /**< Index is of type unsigned short */
 } Evas_3D_Index_Format;
 
 /**
  * Vertex assembly modes
- * @ingroup Evas_3D_Types
  *
  * Vertex assembly represents how the vertices are organized into geometric
  * primitives.
+ *
+ * @since 1.10
+ * @ingroup Evas_3D_Types
  */
 typedef enum _Evas_3D_Vertex_Assembly
 {
-   EVAS_3D_VERTEX_ASSEMBLY_POINTS,           /**< A vertex is rendered as a point */
-   EVAS_3D_VERTEX_ASSEMBLY_LINES,            /**< Two vertices are organized as a line */
-   EVAS_3D_VERTEX_ASSEMBLY_LINE_STRIP,       /**< Vertices are organized as a connected line path */
-   EVAS_3D_VERTEX_ASSEMBLY_LINE_LOOP,        /**< Vertices are organized as a closed line path */
-   EVAS_3D_VERTEX_ASSEMBLY_TRIANGLES,        /**< Three vertices are organized as a triangle */
-   EVAS_3D_VERTEX_ASSEMBLY_TRIANGLE_STRIP,   /**< Vertices are organized as connected triangles */
-   EVAS_3D_VERTEX_ASSEMBLY_TRIANGLE_FAN,     /**< Vertices are organized as a triangle fan */
+   /**< A vertex is rendered as a point */
+   EVAS_3D_VERTEX_ASSEMBLY_POINTS = 0,
+   /**< Two vertices are organized as a line */
+   EVAS_3D_VERTEX_ASSEMBLY_LINES,
+   /**< Vertices are organized as a connected line path */
+   EVAS_3D_VERTEX_ASSEMBLY_LINE_STRIP,
+   /**< Vertices are organized as a closed line path */
+   EVAS_3D_VERTEX_ASSEMBLY_LINE_LOOP,
+   /**< Three vertices are organized as a triangle */
+   EVAS_3D_VERTEX_ASSEMBLY_TRIANGLES,
+   /**< Vertices are organized as connected triangles */
+   EVAS_3D_VERTEX_ASSEMBLY_TRIANGLE_STRIP,
+   /**< Vertices are organized as a triangle fan */
+   EVAS_3D_VERTEX_ASSEMBLY_TRIANGLE_FAN,
 } Evas_3D_Vertex_Assembly;
 
 /**
  * Color formats of pixel data
+ *
+ * @since 1.10
  * @ingroup Evas_3D_Types
  */
 typedef enum _Evas_3D_Color_Format
 {
-   EVAS_3D_COLOR_FORMAT_RGBA,    /**< Color contains full components, red, green, blue and alpha */
-   EVAS_3D_COLOR_FORMAT_RGB,     /**< Color contains only red, green and blue components */
-   EVAS_3D_COLOR_FORMAT_ALPHA,   /**< Color contains only alpha component */
+   /**< Color contains full components, red, green, blue and alpha */
+   EVAS_3D_COLOR_FORMAT_RGBA = 0,
+   /**< Color contains only red, green and blue components */
+   EVAS_3D_COLOR_FORMAT_RGB,
+   /**< Color contains only alpha component */
+   EVAS_3D_COLOR_FORMAT_ALPHA
 } Evas_3D_Color_Format;
 
 /**
  * Pixel formats
+ *
+ * @since 1.10
  * @ingroup Evas_3D_Types
  */
 typedef enum _Evas_3D_Pixel_Format
 {
-   EVAS_3D_PIXEL_FORMAT_8,    /**< 8-bit pixel with single component */
-   EVAS_3D_PIXEL_FORMAT_565,  /**< 16-bit pixel with three components (5-6-5 bit) */
-   EVAS_3D_PIXEL_FORMAT_888,  /**< 24-bit pixel with three 8-bit components */
-   EVAS_3D_PIXEL_FORMAT_8888, /**< 32-bit pixel with four 8-bit components */
-   EVAS_3D_PIXEL_FORMAT_4444, /**< 16-bit pixel with four 4-bit components */
-   EVAS_3D_PIXEL_FORMAT_5551, /**< 16-bit pixel with four components  (5-5-5-1 bit) */
+   /**< 8-bit pixel with single component */
+   EVAS_3D_PIXEL_FORMAT_8 = 0,
+   /**< 16-bit pixel with three components (5-6-5 bit) */
+   EVAS_3D_PIXEL_FORMAT_565,
+   /**< 24-bit pixel with three 8-bit components */
+   EVAS_3D_PIXEL_FORMAT_888,
+   /**< 32-bit pixel with four 8-bit components */
+   EVAS_3D_PIXEL_FORMAT_8888,
+   /**< 16-bit pixel with four 4-bit components */
+   EVAS_3D_PIXEL_FORMAT_4444,
+   /**< 16-bit pixel with four components (5-5-5-1 bit) */
+   EVAS_3D_PIXEL_FORMAT_5551
 } Evas_3D_Pixel_Format;
 
 /**
  * Wrap modes
+ *
+ * @since 1.10
  * @ingroup Evas_3D_Types
  */
 typedef enum _Evas_3D_Wrap_Mode
 {
-   EVAS_3D_WRAP_MODE_CLAMP,   /**< Values will be clamped to be in range [min, max] */
-   EVAS_3D_WRAP_MODE_REPEAT,  /**< Values will be repeated */
-   EVAS_3D_WRAP_MODE_REFLECT, /**< Values will be repeated in a reflected manner */
+   /**< Values will be clamped to be in range [min, max] */
+   EVAS_3D_WRAP_MODE_CLAMP = 0,
+   /**< Values will be repeated */
+   EVAS_3D_WRAP_MODE_REPEAT,
+   /**< Values will be repeated in a reflected manner */
+   EVAS_3D_WRAP_MODE_REFLECT
 } Evas_3D_Wrap_Mode;
 
 /**
  * Texture filters
+ *
+ * @since 1.10
  * @ingroup Evas_3D_Types
  */
 typedef enum _Evas_3D_Texture_Filter
 {
-   EVAS_3D_TEXTURE_FILTER_NEAREST,                 /**< Samples nearest texel */
-   EVAS_3D_TEXTURE_FILTER_LINEAR,                  /**< Lineary interpolate nearby texels */
-   EVAS_3D_TEXTURE_FILTER_NEAREST_MIPMAP_NEAREST,  /**< Nearest sampling mipmap */
-   EVAS_3D_TEXTURE_FILTER_LINEAR_MIPMAP_NEAREST,   /**< Nearest sampling mipmap and interpolate */
-   EVAS_3D_TEXTURE_FILTER_NEAREST_MIPMAP_LINEAR,   /**< Linear sampling in nearest mipmap */
-   EVAS_3D_TEXTURE_FILTER_LINEAR_MIPMAP_LINEAR,    /**< Linear sampling in mipmap and interpolate */
+   /**< Samples nearest texel */
+   EVAS_3D_TEXTURE_FILTER_NEAREST = 0,
+   /**< Lineary interpolate nearby texels */
+   EVAS_3D_TEXTURE_FILTER_LINEAR,
+   /**< Nearest sampling mipmap */
+   EVAS_3D_TEXTURE_FILTER_NEAREST_MIPMAP_NEAREST,
+   /**< Nearest sampling mipmap and interpolate */
+   EVAS_3D_TEXTURE_FILTER_LINEAR_MIPMAP_NEAREST,
+   /**< Linear sampling in nearest mipmap */
+   EVAS_3D_TEXTURE_FILTER_NEAREST_MIPMAP_LINEAR,
+   /**< Linear sampling in mipmap and interpolate */
+   EVAS_3D_TEXTURE_FILTER_LINEAR_MIPMAP_LINEAR
 } Evas_3D_Texture_Filter;
 
 /**
  * Shade modes
+ *
+ * @since 1.10
  * @ingroup Evas_3D_Types
  */
 typedef enum _Evas_3D_Shade_Mode
 {
-   EVAS_3D_SHADE_MODE_VERTEX_COLOR,    /**< Shaded using vertex color attribute */
-   EVAS_3D_SHADE_MODE_DIFFUSE,         /**< Shaded using material diffuse term */
-   EVAS_3D_SHADE_MODE_FLAT,            /**< Per-vertex flat lighting */
-   EVAS_3D_SHADE_MODE_PHONG,           /**< Per-pixel phong shading */
-   EVAS_3D_SHADE_MODE_NORMAL_MAP,      /**< Per-pixel normal map shading */
+   /**< Shaded using vertex color attribute */
+   EVAS_3D_SHADE_MODE_VERTEX_COLOR = 0,
+   /**< Shaded using material diffuse term */
+   EVAS_3D_SHADE_MODE_DIFFUSE,
+   /**< Per-vertex flat lighting */
+   EVAS_3D_SHADE_MODE_FLAT,
+   /**< Per-pixel phong shading */
+   EVAS_3D_SHADE_MODE_PHONG,
+   /**< Per-pixel normal map shading */
+   EVAS_3D_SHADE_MODE_NORMAL_MAP
 } Evas_3D_Shade_Mode;
 
 /**
  * Material attributes
+ *
+ * @since 1.10
  * @ingroup Evas_3D_Types
  */
 typedef enum _Evas_3D_Material_Attrib
 {
-   EVAS_3D_MATERIAL_AMBIENT,     /**< Ambient term */
-   EVAS_3D_MATERIAL_DIFFUSE,     /**< Diffuse term */
-   EVAS_3D_MATERIAL_SPECULAR,    /**< Specular term */
-   EVAS_3D_MATERIAL_EMISSION,    /**< Emission term */
-   EVAS_3D_MATERIAL_NORMAL,      /**< Normal map term */
+   EVAS_3D_MATERIAL_AMBIENT = 0,     /**< Ambient term */
+   EVAS_3D_MATERIAL_DIFFUSE,         /**< Diffuse term */
+   EVAS_3D_MATERIAL_SPECULAR,        /**< Specular term */
+   EVAS_3D_MATERIAL_EMISSION,        /**< Emission term */
+   EVAS_3D_MATERIAL_NORMAL,          /**< Normal map term */
 } Evas_3D_Material_Attrib;
 
 /**
  * Mesh file type
+ *
+ * @since 1.10
  * @ingroup Evas_3D_Types
  */
 typedef enum _Evas_3D_Mesh_File_Type
 {
-   EVAS_3D_MESH_FILE_TYPE_MD2,   /**< Quake's MD2 mesh file format */
+   EVAS_3D_MESH_FILE_TYPE_MD2 = 0,   /**< Quake's MD2 mesh file format */
 } Evas_3D_Mesh_File_Type;
 
-typedef enum _Evas_3D_Pick_Type
-{
-   EVAS_3D_PICK_NODE,
-   EVAS_3D_PICK_MESH,
-} Evas_3D_Pick_Type;
-
 /**
- * Set the scene on an image object.
- *
- * @param obj     Image object.
- * @param scene   Scene object used as a content of the given image object.
- *
- * An image object can get its content from various sources like memory buffers,
- * image files and other evas object. A scene also can be a source for an image
- * object to display the rendered result onto evas canvas.
+ * Create a new scene object on the given Evas @p e canvas.
  *
- * Any existing content (data, file or proxy source) will be removed after this
- * call. Setting @p src to @c NULL detach the 3D scene from the image object.
- *
- * @ingroup Evas_3D_Scene
- */
-EAPI void               evas_object_image_3d_scene_set(Evas_Object *obj, Evas_3D_Scene *scene) EINA_ARG_NONNULL(1);
-
-/**
- * Get the current scene of an image object.
+ * @param e The given canvas.
+ * @return A new scene object.
  *
- * @param obj     Image object.
- * @return        Scene object handle (if any), or @c NULL if there's no scene attached.
- *
- * @ingroup Evas_3D_Scene
- */
-EAPI Evas_3D_Scene     *evas_object_image_3d_scene_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
-
-/**
- * Create a new scene on the given Evas @p e canvas.
- *
- * @param e    The given canvas.
- * @return     The created scene handle.
+ * @since 1.10
  *
  * @ingroup Evas_3D_Scene
  */
 EAPI Evas_3D_Scene     *evas_3d_scene_add(Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
 
 /**
- * Delete a scene from its belonging Evas canvas.
- *
- * @param scene   The given scene to be deleted.
- *
- * @ingroup Evas_3D_Scene
- */
-EAPI void               evas_3d_scene_del(Evas_3D_Scene *scene) EINA_ARG_NONNULL(1);
-
-/**
- * Get the Evas canvas where the given scene belongs to.
- *
- * @param scene   The given scene.
- * @return        The Evas canvas.
- *
- * @ingroup Evas_3D_Scene
- */
-//EAPI Evas              *evas_3d_scene_evas_get(const Evas_3D_Scene *scene) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
-
-/**
  * Set the root node of a scene.
  *
- * @param scene   The given scene.
- * @param node    A node which will be used as a root node for the scene.
+ * @param scene A scene.
+ * @param node A node which will be used as a root node for the scene.
+ *
+ * @see evas_3d_scene_root_node_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Scene
  */
@@ -5825,8 +5856,11 @@ EAPI void               evas_3d_scene_root_node_set(Evas_3D_Scene *scene, Evas_3
 /**
  * Get the root node of a scene.
  *
- * @param scene   The given scene.
- * @return        The root node of the given scene.
+ * @param scene The given scene.
+ * @return The root node of the given scene.
+ *
+ * @see evas_3d_scene_root_node_get()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Scene
  */
@@ -5835,8 +5869,11 @@ EAPI Evas_3D_Node      *evas_3d_scene_root_node_get(const Evas_3D_Scene *scene)
 /**
  * Set the camera node of a scene.
  *
- * @param scene   The given scene.
- * @param node    A node which will be used as a camera node for the scene.
+ * @param scene The given scene.
+ * @param node A node which will be used as a camera node for the scene.
+ *
+ * @see evas_3d_scene_camera_node_get()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Scene
  */
@@ -5845,8 +5882,11 @@ EAPI void               evas_3d_scene_camera_node_set(Evas_3D_Scene *scene, Evas
 /**
  * Get the camera node of a scene.
  *
- * @param scene   The given scene.
- * @return        The camera node of the given scene.
+ * @param scene The given scene.
+ * @return The camera node of the given scene.
+ *
+ * @see evas_3d_scene_camera_node_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Scene
  */
@@ -5855,13 +5895,16 @@ EAPI Evas_3D_Node      *evas_3d_scene_camera_node_get(const Evas_3D_Scene *scene
 /**
  * Set the resolution of a scene.
  *
- * @param scene   The given scene.
- * @param w       Width of the resolution.
- * @param h       Height of the resolution.
+ * @param scene The given scene.
+ * @param w Width of the resolution.
+ * @param h Height of the resolution.
  *
  * A scene should be rendered to be displayed through an image objects. The
  * resolution defines size of the internal surface holding the rendered result.
  *
+ * @see evas_3d_scene_size_get()
+ * @since 1.10
+ * 
  * @ingroup Evas_3D_Scene
  */
 EAPI void               evas_3d_scene_size_set(Evas_3D_Scene *scene, int w, int h) EINA_ARG_NONNULL(1);
@@ -5869,10 +5912,13 @@ EAPI void               evas_3d_scene_size_set(Evas_3D_Scene *scene, int w, int
 /**
  * Get the internal resolution of a scene.
  *
- * @param scene   The given scene.
- * @param w       Pointer to receive width of the resolution.
- * @param h       Pointer to receive height of the resolution.
+ * @param scene The given scene.
+ * @param w Pointer to receive width of the resolution.
+ * @param h Pointer to receive height of the resolution.
  *
+ * @see evas_3d_scene_size_set()
+ * @since 1.10
+ * 
  * @ingroup Evas_3D_Scene
  */
 EAPI void               evas_3d_scene_size_get(const Evas_3D_Scene *scene, int *w, int *h) EINA_ARG_NONNULL(1);
@@ -5880,11 +5926,11 @@ EAPI void               evas_3d_scene_size_get(const Evas_3D_Scene *scene, int *
 /**
  * Set the background color of a scene.
  *
- * @param scene   The given scene.
- * @param r       Red component of the background color.
- * @param g       Green component of the background color.
- * @param b       Blue component of the background color.
- * @param a       Alpha component of the background color.
+ * @param scene The given scene.
+ * @param r Red component of the background color.
+ * @param g Green component of the background color.
+ * @param b Blue component of the background color.
+ * @param a Alpha component of the background color.
  *
  * Background color defines initial color of pixels before a scene is rendered.
  * If you want to display a scene with background evas objects are still
@@ -5892,6 +5938,9 @@ EAPI void               evas_3d_scene_size_get(const Evas_3D_Scene *scene, int *
  *
  * Default background color is (0.0, 0.0, 0.0, 0.0).
  *
+ * @see evas_3d_scene_background_color_get()
+ * @since 1.10
+ *
  * @ingroup Evas_3D_Scene
  */
 EAPI void               evas_3d_scene_background_color_set(Evas_3D_Scene *scene, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a) EINA_ARG_NONNULL(1);
@@ -5899,11 +5948,14 @@ EAPI void               evas_3d_scene_background_color_set(Evas_3D_Scene *scene,
 /**
  * Get the background color of a scene.
  *
- * @param scene   The given scene.
- * @param r       Pointer to receive red component of the background color.
- * @param g       Pointer to receive green component of the background color.
- * @param b       Pointer to receive blue component of the background color.
- * @param a       Pointer to receive alpha component of the background color.
+ * @param scene The given scene.
+ * @param r Pointer to receive red component of the background color.
+ * @param g Pointer to receive green component of the background color.
+ * @param b Pointer to receive blue component of the background color.
+ * @param a Pointer to receive alpha component of the background color.
+ *
+ * @see evas_3d_scene_background_color_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Scene
  */
@@ -5912,17 +5964,19 @@ EAPI void               evas_3d_scene_background_color_get(const Evas_3D_Scene *
 /**
  * Get information on the most front visible mesh for the given position.
  *
- * @param scene   The given scene.
- * @param x       X coordinate of the picking position.
- * @param y       Y coordinate of the picking position.
- * @param node    Pointer to receive the node contains the picked mesh.
- * @param mesh    Pointer to receive the picked mesh.
- * @param s       Pointer to receive the texture "s" coordinate.
- * @param t       Pointer to receive the texture "t" coordinate.
+ * @param scene The given scene.
+ * @param x X coordinate of the picking position.
+ * @param y Y coordinate of the picking position.
+ * @param node Pointer to receive the node contains the picked mesh.
+ * @param mesh Pointer to receive the picked mesh.
+ * @param s Pointer to receive the texture "s" coordinate.
+ * @param t Pointer to receive the texture "t" coordinate.
  *
  * (x, y) is the screen coordinate of the given scene. That is, left-top is
  * (0, 0) and right-bottom is (w, h) where (w, h) is the size of the scene.
- * The texture coordinate is useful when using proxy texture source.
+ * The texture coordinate may be useful when using proxy texture source.
+ *
+ * @since 1.10
  *
  * @ingroup Evas_3D_Scene
  */
@@ -5931,9 +5985,12 @@ EAPI Eina_Bool          evas_3d_scene_pick(const Evas_3D_Scene *scene, Evas_Real
 /**
  * Create a new node on the given Evas @p canvas.
  *
- * @param e    The given canvas.
+ * @param e The given canvas.
  * @param type The type of the node.
- * @return     The created node handle.
+ * @return The created node handle.
+ *
+ * @see evas_3d_node_del()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Node
  */
@@ -5946,6 +6003,8 @@ EAPI Evas_3D_Node      *evas_3d_node_add(Evas *e, Evas_3D_Node_Type type) EINA_W
  *
  * @see evas_3d_node_add()
  *
+ * @since 1.10
+ *
  * @ingroup Evas_3D_Node
  */
 EAPI void               evas_3d_node_del(Evas_3D_Node *node) EINA_ARG_NONNULL(1);
@@ -5954,36 +6013,30 @@ EAPI void               evas_3d_node_del(Evas_3D_Node *node) EINA_ARG_NONNULL(1)
  * Get the type of the given node.
  *
  * @param node The given node.
- * @return     The type of the given node.
+ * @return The type of the given node.
  *
  * @see evas_3d_node_add()
  *
- * @ingroup Evas_3D_Node
- */
-EAPI Evas_3D_Node_Type  evas_3d_node_type_get(const Evas_3D_Node *node) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
-
-/**
- * Get the Evas canvas where the given node belongs to.
- *
- * @param node The given node.
- * @return     The Evas canvas.
- *
- * @see evas_3d_node_add()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Node
  */
-//EAPI Evas              *evas_3d_node_evas_get(const Evas_3D_Node *node) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
+EAPI Evas_3D_Node_Type  evas_3d_node_type_get(const Evas_3D_Node *node) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
 
 /**
  * Add a member node to the given node.
  *
- * @param node    The given node which will be the parent.
- * @param member  Node object to be added.
+ * @param node The given node which will be the parent.
+ * @param member Node object to be added.
  *
  * Nodes can be constructed into N-ary tree structure like other ordinary scene
  * graph. Basically a node inherit transforms from its parent.
  *
  * @see evas_3d_node_parent_get()
+ * @see evas_3d_node_member_del()
+ * @see evas_3d_node_member_list_get()
+ *
+ * @since 1.10
  *
  * @ingroup Evas_3D_Node
  */
@@ -5992,8 +6045,8 @@ EAPI void               evas_3d_node_member_add(Evas_3D_Node *node, Evas_3D_Node
 /**
  * Delete a member node from the given node.
  *
- * @param node    The given node.
- * @param member  Member node to be deleted from the given node.
+ * @param node The given node.
+ * @param member Member node to be deleted from the given node.
  *
  * @see evas_3d_node_member_add()
  *
@@ -6004,11 +6057,13 @@ EAPI void               evas_3d_node_member_del(Evas_3D_Node *node, Evas_3D_Node
 /**
  * Get the parent node of the given node.
  *
- * @param node    The given node.
- * @return        The parent node of the given node.
+ * @param node The given node.
+ * @return The parent node of the given node.
  *
  * @see evas_3d_node_member_add()
  *
+ * @since 1.10
+ *
  * @ingroup Evas_3D_Node
  */
 EAPI Evas_3D_Node      *evas_3d_node_parent_get(const Evas_3D_Node *node) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
@@ -6016,11 +6071,13 @@ EAPI Evas_3D_Node      *evas_3d_node_parent_get(const Evas_3D_Node *node) EINA_W
 /**
  * Get the list of member nodes of the given node.
  *
- * @param node    The given node.
- * @return        The list of member nodes if any or @c NULL if there are none.
+ * @param node The given node.
+ * @return The list of member nodes if any or @c NULL if there are none.
  *
  * @see evas_3d_node_member_add()
  *
+ * @since 1.10
+ *
  * @ingroup Evas_3D_Node
  */
 EAPI const Eina_List   *evas_3d_node_member_list_get(const Evas_3D_Node *node) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
@@ -6041,10 +6098,10 @@ EAPI const Eina_List   *evas_3d_node_member_list_get(const Evas_3D_Node *node) E
 /**
  * Set the position of the given node.
  *
- * @param node    The given node.
- * @param x       X coordinate of the position.
- * @param y       Y coordinate of the position.
- * @param z       Z coordinate of the position.
+ * @param node The given node.
+ * @param x X coordinate of the position.
+ * @param y Y coordinate of the position.
+ * @param z Z coordinate of the position.
  *
  * According to the inheritance flag, (x, y, z) can be a world space position or
  * parent space position.
@@ -6052,6 +6109,9 @@ EAPI const Eina_List   *evas_3d_node_member_list_get(const Evas_3D_Node *node) E
  * Default position is (0.0, 0.0, 0.0).
  *
  * @see evas_3d_node_position_inherit_set()
+ * @see evas_3d_node_position_get()
+ *
+ * @since 1.10
  *
  * @ingroup Evas_3D_Node_Transform
  */
@@ -6060,11 +6120,11 @@ EAPI void               evas_3d_node_position_set(Evas_3D_Node *node, Evas_Real
 /**
  * Set the orientation of the given node using quaternion.
  *
- * @param node    The given node.
- * @param x       X term of the orientation quaternion (w, x, y, z)
- * @param y       Y term of the orientation quaternion (w, x, y, z)
- * @param z       Z term of the orientation quaternion (w, x, y, z)
- * @param w       W term of the orientation quaternion (w, x, y, z)
+ * @param node The given node.
+ * @param x X term of the orientation quaternion (w, x, y, z)
+ * @param y Y term of the orientation quaternion (w, x, y, z)
+ * @param z Z term of the orientation quaternion (w, x, y, z)
+ * @param w W term of the orientation quaternion (w, x, y, z)
  *
  * According the the inheritance flag, (w, x, y, z) can be a world space
  * orientation or parent space orientation.
@@ -6073,35 +6133,25 @@ EAPI void               evas_3d_node_position_set(Evas_3D_Node *node, Evas_Real
  *
  * @see evas_3d_node_orientation_inherit_set()
  *
- * @ingroup Evas_3D_Node_Transform
- */
-EAPI void               evas_3d_node_orientation_set(Evas_3D_Node *node, Evas_Real x, Evas_Real y, Evas_Real z, Evas_Real w) EINA_ARG_NONNULL(1);
-
-/**
- * Set the orientation of the given node using euler angle.
- *
- * @param node    The given node.
- * @param x       Rotation angle about X-axis.
- * @param y       Rotation angle about Y-axis.
- * @param z       Rotation angle about Z-axis.
- *
- * @see evas_3d_node_orientation_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Node_Transform
  */
-EAPI void               evas_3d_node_orientation_euler_set(Evas_3D_Node *node, Evas_Real x, Evas_Real y, Evas_Real z) EINA_ARG_NONNULL(1);
+EAPI void               evas_3d_node_orientation_set(Evas_3D_Node *node, Evas_Real x, Evas_Real y, Evas_Real z, Evas_Real w) EINA_ARG_NONNULL(1);
 
 /**
  * Set the orientation of the given node using axis-angle.
  *
- * @param node    The given node.
- * @param angle   Rotation angle.
- * @param x       X term of the rotation axis.
- * @param y       Y term of the rotation axis.
- * @param z       Z term of the rotation axis.
+ * @param node The given node.
+ * @param angle Rotation angle.
+ * @param x X term of the rotation axis.
+ * @param y Y term of the rotation axis.
+ * @param z Z term of the rotation axis.
  *
  * @see evas_3d_node_orientation_set()
  *
+ * @since 1.10
+ *
  * @ingroup Evas_3D_Node_Transform
  */
 EAPI void               evas_3d_node_orientation_angle_axis_set(Evas_3D_Node *node, Evas_Real angle, Evas_Real x, Evas_Real y, Evas_Real z) EINA_ARG_NONNULL(1);
@@ -6109,10 +6159,10 @@ EAPI void               evas_3d_node_orientation_angle_axis_set(Evas_3D_Node *no
 /**
  * Set the scale of the given node.
  *
- * @param node    The given node.
- * @param x       Scale factor along X-axis.
- * @param y       Scale factor along Y-axis.
- * @param z       Scale factor along Z-axis.
+ * @param node The given node.
+ * @param x Scale factor along X-axis.
+ * @param y Scale factor along Y-axis.
+ * @param z Scale factor along Z-axis.
  *
  * According to the inheritance flag, (x, y, z) can be a world space scale or
  * parent space scale. Be careful when using non-uniform scale factor with
@@ -6121,6 +6171,9 @@ EAPI void               evas_3d_node_orientation_angle_axis_set(Evas_3D_Node *no
  * Default scale is (1.0, 1.0, 1.0).
  *
  * @see evas_3d_node_scale_inherit_set()
+ * @see evas_3d_node_scale_get()
+ *
+ * @since 1.10
  *
  * @ingroup Evas_3D_Node_Transform
  */
@@ -6129,13 +6182,16 @@ EAPI void               evas_3d_node_scale_set(Evas_3D_Node *node, Evas_Real x,
 /**
  * Get the position of the given node.
  *
- * @param node    The given node.
- * @param x       Pointer to receive X coordinate of the position.
- * @param y       Pointer to receive Y coordinate of the position.
- * @param z       Pointer to receive Z coordinate of the position.
+ * @param node The given node.
+ * @param Space where the target position belongs to.
+ * @param x Pointer to receive X coordinate of the position.
+ * @param y Pointer to receive Y coordinate of the position.
+ * @param z Pointer to receive Z coordinate of the position.
  *
  * @see evas_3d_node_position_set()
  *
+ * @since 1.10
+ *
  * @ingroup Evas_3D_Node_Transform
  */
 EAPI void               evas_3d_node_position_get(const Evas_3D_Node *node, Evas_3D_Space space, Evas_Real *x, Evas_Real *y, Evas_Real *z) EINA_ARG_NONNULL(1);
@@ -6143,81 +6199,111 @@ EAPI void               evas_3d_node_position_get(const Evas_3D_Node *node, Evas
 /**
  * Get the orientation of the given node as quaternion.
  *
- * @param node    The given node.
- * @param x       Pointer to receive X term of the orientation quaternion.
- * @param y       Pointer to receive Y term of the orientation quaternion.
- * @param z       Pointer to receive Z term of the orientation quaternion.
- * @param w       Pointer to receive W term of the orientation quaternion.
+ * @param node The given node.
+ * @param space Space where the target position belongs to.
+ * @param x Pointer to receive X term of the orientation quaternion.
+ * @param y Pointer to receive Y term of the orientation quaternion.
+ * @param z Pointer to receive Z term of the orientation quaternion.
+ * @param w Pointer to receive W term of the orientation quaternion.
  *
  * @see evas_3d_node_orientation_set()
  *
+ * @since 1.10
+ *
  * @ingroup Evas_3D_Node_Transform
  */
 EAPI void               evas_3d_node_orientation_get(const Evas_3D_Node *node, Evas_3D_Space space, Evas_Real *x, Evas_Real *y, Evas_Real *z, Evas_Real *w) EINA_ARG_NONNULL(1);
+
+/**
+ * Get the scale of the given node
+ *
+ * @param node The given node.
+ * @param space Space where the target position belongs to.
+ * @param x Scale facator to receive along X-axis.
+ * @param x Scale facator to receive along Y-axis.
+ * @param x Scale facator to receive along Z-axis.
+ *
+ * @see evas_3d_node_scale_set()
+ *
+ * @since 1.10
+ *
+ * @ingroup Evas_3D_Node_Transform
+ */
 EAPI void               evas_3d_node_scale_get(const Evas_3D_Node *node, Evas_3D_Space space, Evas_Real *x, Evas_Real *y, Evas_Real *z) EINA_ARG_NONNULL(1);
 
 /**
- * Set the position inheritance flag of the given node.
+ * Set the position inheritance of the given node.
  *
- * @param node    The given node.
- * @param inherit Whether to inherit parent position @c EINA_TRUE or not @c EINA_FALSE.
+ * @param node The given node.
+ * @param inherit Whether to inherit parent position @c EINA_TRUE or not
+ *        @c EINA_FALSE.
  *
  * When inheritance is enabled, a node's world space position is determined by
  * adding the parent node's world position and the node's position, otherwise,
  * the node's position will be the world space position.
  *
+ * @since 1.10
+ *
  * @ingroup Evas_3D_Node_Transform
  */
 EAPI void               evas_3d_node_position_inherit_set(Evas_3D_Node *node, Eina_Bool inherit) EINA_ARG_NONNULL(1);
 
 /**
- * Set the orientation inheritance flag of the given node.
+ * Set the orientation inheritance of the given node.
  *
- * @param node    The given node.
- * @param inherit Whether to inherit parent orientation @c EINA_TRUE or not @c EINA_FALSE.
+ * @param node The given node.
+ * @param inherit Whether to inherit parent orientation @c EINA_TRUE or not
+ *        @c EINA_FALSE.
  *
  * When inheritance is enabled, a node's world space orientation is determined
  * by multiplying the parent node's world orientation and the node's
  * orientation, otherwise, the node's orientation will be the world space
  * orientation.
  *
+ * @since 1.10
+ *
  * @ingroup Evas_3D_Node_Transform
  */
 EAPI void               evas_3d_node_orientation_inherit_set(Evas_3D_Node *node, Eina_Bool inherit) EINA_ARG_NONNULL(1);
 
 /**
- * Set the scale inheritance flag of the given node.
+ * Set the scale inheritance of the given node.
  *
- * @param node    The given node.
- * @param inherit Whether to inherit parent scale @c EINA_TRUE or not @c EINA_FALSE.
+ * @param node The given node.
+ * @param inherit Whether to inherit parent scale @c EINA_TRUE or not
+ *        @c EINA_FALSE.
  *
  * When inheritance is enabled, a node's world space scale is determined by
  * multiplying the parent node's world scale and the node's scale, otherwise,
  * the node's scale will be the world space scale.
  *
+ * @since 1.10
+ *
  * @ingroup Evas_3D_Node_Transform
  */
 EAPI void               evas_3d_node_scale_inherit_set(Evas_3D_Node *node, Eina_Bool inherit) EINA_ARG_NONNULL(1);
 
 /**
- * Get the position inheritance flag of the given node.
+ * Get the position inheritance of the given node.
  *
- * @param node    The given node.
- * @return        @c EINA_TRUE if inheritance is enabled, or @c EINA_FALSE if not.
+ * @param node The given node.
+ * @return @c EINA_TRUE if inheritance is enabled, or @c EINA_FALSE if not.
  *
  * @see evas_3d_node_position_inherit_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Node_Transform
  */
 EAPI Eina_Bool          evas_3d_node_position_inherit_get(const Evas_3D_Node *node) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
 
 /**
- * Get the orientation inheritance flag of the given node.
+ * Get the orientation inheritance of the given node.
  *
- * @param node    The given node.
- * @return        @c EINA_TRUE if inheritance is enabled, or @c EINA_FALSE if not.
+ * @param node The given node.
+ * @return @c EINA_TRUE if inheritance is enabled, or @c EINA_FALSE if not.
  *
  * @see evas_3d_node_orientation_inherit_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Node_Transform
  */
@@ -6226,10 +6312,11 @@ EAPI Eina_Bool          evas_3d_node_orientation_inherit_get(const Evas_3D_Node
 /**
  * Get the scale inheritance flag of the given node.
  *
- * @param node    The given node.
- * @return        @c EINA_TRUE if inheritance is enabled, or @c EINA_FALSE if not.
+ * @param node The given node.
+ * @return @c EINA_TRUE if inheritance is enabled, or @c EINA_FALSE if not.
  *
  * @see evas_3d_node_scale_inherit_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Node_Transform
  */
@@ -6238,15 +6325,15 @@ EAPI Eina_Bool          evas_3d_node_scale_inherit_get(const Evas_3D_Node *node)
 /**
  * Rotate the given node to look at desired position.
  *
- * @param node          The given node.
- * @param target_space  Space where the target position belongs to.
- * @param x             X coordinate of the target position.
- * @param y             Y coordinate of the target position.
- * @param z             Z coordinate of the target position.
- * @param up_space      Space where the up vector belongs to.
- * @param ux            X term of the up vector.
- * @param uy            Y term of the up vector.
- * @param uz            Z term of the up vector.
+ * @param node The given node.
+ * @param target_space Space where the target position belongs to.
+ * @param x X coordinate of the target position.
+ * @param y Y coordinate of the target position.
+ * @param z Z coordinate of the target position.
+ * @param up_space Space where the up vector belongs to.
+ * @param ux X term of the up vector.
+ * @param uy Y term of the up vector.
+ * @param uz Z term of the up vector.
  *
  * This function rotate the given node so that its forward vector (negative
  * Z-axis) points to the desired position and the up vector coincide with the
@@ -6254,6 +6341,8 @@ EAPI Eina_Bool          evas_3d_node_scale_inherit_get(const Evas_3D_Node *node)
  *
  * @see evas_3d_node_orientation_set()
  *
+ * @since 1.10
+ *
  * @ingroup Evas_3D_Node_Transform
  */
 EAPI void               evas_3d_node_look_at_set(Evas_3D_Node *node, Evas_3D_Space target_space, Evas_Real x, Evas_Real y, Evas_Real z, Evas_3D_Space up_space, Evas_Real ux, Evas_Real uy, Evas_Real uz) EINA_ARG_NONNULL(1);
@@ -6261,14 +6350,16 @@ EAPI void               evas_3d_node_look_at_set(Evas_3D_Node *node, Evas_3D_Spa
 /**
  * Set a camera to the given node.
  *
- * @param node          The given node.
- * @param camera        The camera to be set.
+ * @param node The given node.
+ * @param camera The camera to be set.
  *
- * If the node is not of type EVAS_3D_NODE_TYPE_CAMERA, error message will be
- * generated and nothing happens.
+ * @warning If the node type should be EVAS_3D_NODE_TYPE_CAMERA. Otherwise
+ *          nothing will be happened.
  *
  * @see evas_3d_node_add()
  *
+ * @since 1.10
+ *
  * @ingroup Evas_3D_Node
  */
 EAPI void               evas_3d_node_camera_set(Evas_3D_Node *node, Evas_3D_Camera *camera) EINA_ARG_NONNULL(1);
@@ -6276,10 +6367,11 @@ EAPI void               evas_3d_node_camera_set(Evas_3D_Node *node, Evas_3D_Came
 /**
  * Get the camera of the given node.
  *
- * @param node          The given node.
- * @return              The camera of the given node if any, or @c NULL if there're none.
+ * @param node The given node.
+ * @return The camera of the given node if any, or @c NULL if there's none.
  *
  * @see evas_3d_node_camera_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Node
  */
@@ -6288,13 +6380,14 @@ EAPI Evas_3D_Camera    *evas_3d_node_camera_get(const Evas_3D_Node *node) EINA_W
 /**
  * Set the light of the given node.
  *
- * @param node          The given node.
- * @param light         The light to be set.
+ * @param node The given node.
+ * @param light The light to be set.
  *
- * If the node is not of type EVAS_3D_NODE_TYPE_LIGHT, error message will be
- * generated and nothing happens.
+ * @warning If the node type should be EVAS_3D_NODE_TYPE_LIGHT. Otherwise
+ *          nothing will be happened.
  *
  * @see evas_3d_node_add()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Node
  */
@@ -6303,10 +6396,11 @@ EAPI void               evas_3d_node_light_set(Evas_3D_Node *node, Evas_3D_Light
 /**
  * Get the light of the given node.
  *
- * @param node          The given node.
- * @return              The light of the given node if any, or @c NULL if there're none.
+ * @param node The given node.
+ * @return The light of the given node if any, or @c NULL if there's none.
  *
  * @see evas_3d_node_light_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Node
  */
@@ -6315,13 +6409,14 @@ EAPI Evas_3D_Light     *evas_3d_node_light_get(const Evas_3D_Node *node) EINA_WA
 /**
  * Add a mesh to the given node.
  *
- * @param node          The given node.
- * @param mesh          The mesh to be added.
+ * @param node The given node.
+ * @param mesh  The mesh to be added.
  *
- * If the node is not of type EVAS_3D_NODE_TYPE_MESH, error message will be
- * generated and nothing happens.
+ * @warning If the node type should be EVAS_3D_NODE_TYPE_MESH. Otherwise
+ *          nothing will be happened.
  *
  * @see evas_3d_node_add()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Node
  */
@@ -6330,13 +6425,14 @@ EAPI void               evas_3d_node_mesh_add(Evas_3D_Node *node, Evas_3D_Mesh *
 /**
  * Delete a mesh from the given node.
  *
- * @param node          The given node.
- * @param mesh          The mesh to be deleted.
+ * @param node The given node.
+ * @param mesh The mesh to be deleted.
  *
- * If the node is not of type EVAS_3D_NODE_TYPE_MESH or the given mesh does not
- * belong to the given node, error message will be gnerated and nothing happens.
+ * @warning If the node is not of type EVAS_3D_NODE_TYPE_MESH or the given mesh 
+ *          does not belong to the given node, nothing will be happened.
  *
  * @see evas_3d_node_mesh_add()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Node
  */
@@ -6345,14 +6441,16 @@ EAPI void               evas_3d_node_mesh_del(Evas_3D_Node *node, Evas_3D_Mesh *
 /**
  * Get the list of meshes of the given node.
  *
- * @param node          The given node.
- * @return              The list of meshes if any, or @c NULL if there're none.
+ * @param node The given node.
+ * @return The list of meshes if any, or @c NULL if there're none.
+ *
+ * If there're no meshes in the given node, @c NULL will be returned.
  *
- * If the node is not of type EVAS_3D_NODE_TYPE_MESH, error message will be
- * generated and @c NULL will be returned. If there're no meshes in the given
- * node, @c NULL will be returned.
+ * @warning If the node is not of type EVAS_3D_NODE_TYPE_MESH or the given mesh 
+ *          does not belong to the given node, @c NULL will be returned.
  *
  * @see evas_3d_node_mesh_add()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Node
  */
@@ -6361,9 +6459,9 @@ EAPI const Eina_List   *evas_3d_node_mesh_list_get(const Evas_3D_Node *node) EIN
 /**
  * Set the animation frame number of the given node for the given mesh.
  *
- * @param node          The given node.
- * @param mesh          The given mesh.
- * @param frame         The animation frame number.
+ * @param node The given node.
+ * @param mesh The given mesh.
+ * @param frame The animation frame number.
  *
  * If the node is not of type EVAS_3D_NODE_TYPE_MESH or the given mesh does not
  * belong to the given mesh error mesh will be generated and nothing happens.
@@ -6371,6 +6469,7 @@ EAPI const Eina_List   *evas_3d_node_mesh_list_get(const Evas_3D_Node *node) EIN
  * Default mesh frame is 0.
  *
  * @see evas_3d_node_mesh_add()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Node
  */
@@ -6379,14 +6478,15 @@ EAPI void               evas_3d_node_mesh_frame_set(Evas_3D_Node *node, Evas_3D_
 /**
  * Set the animation frame number of the given node for the given mesh.
  *
- * @param node          The given node.
- * @param mesh          The given mesh.
- * @param frame         The animation frame number.
+ * @param node The given node.
+ * @param mesh The given mesh.
+ * @param frame The animation frame number.
  *
  * If the node is not of type EVAS_3D_NODE_TYPE_MESH or the given mesh does not
- * belong to the given mesh error mesh will be generated and nothing happens.
+ * belong to the given mesh, nothing will be happened.
  *
  * @see evas_3d_node_mesh_add()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Node
  */
@@ -6395,8 +6495,10 @@ EAPI int                evas_3d_node_mesh_frame_get(const Evas_3D_Node *node, Ev
 /**
  * Create a new camera on the given Evas @p canvas.
  *
- * @param e          The given canvas.
- * @return           The created camera handle.
+ * @param e The given canvas.
+ * @return The created camera handle.
+ *
+ * @since 1.10
  *
  * @ingroup Evas_3D_Camera
  */
@@ -6405,31 +6507,21 @@ EAPI Evas_3D_Camera    *evas_3d_camera_add(Evas *e) EINA_WARN_UNUSED_RESULT EINA
 /**
  * Delete a node from its belonging Evas canvas.
  *
- * @param camera     The given camera.
+ * @param camera The given camera.
  *
  * @see evas_3d_camera_add()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Camera
  */
 EAPI void               evas_3d_camera_del(Evas_3D_Camera *camera) EINA_ARG_NONNULL(1);
 
 /**
- * Get the Evas canvas where the given node belongs to.
- *
- * @param camera     The given camera.
- * @return           The Evas canvas.
- *
- * @see evas_3d_node_add()
- *
- * @ingroup Evas_3D_Camera
- */
-//EAPI Evas              *evas_3d_camera_evas_get(const Evas_3D_Camera *camera) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
-
-/**
  * Set the projection matrix of the given camera.
  *
- * @param camera     The given camera.
- * @param matrix     Pointer to the array of 16 Evas_Real values in column major order.
+ * @param camera The given camera.
+ * @param matrix Pointer to the array of 16 Evas_Real values in column major
+ *               order.
  *
  * Default projection matrix is identity matrix.
  *
@@ -6437,6 +6529,8 @@ EAPI void               evas_3d_camera_del(Evas_3D_Camera *camera) EINA_ARG_NONN
  * @see evas_3d_camera_projection_ortho_set()
  * @see evas_3d_camera_projection_frustum_set()
  *
+ * @since 1.10
+ *
  * @ingroup Evas_3D_Camera
  */
 EAPI void               evas_3d_camera_projection_matrix_set(Evas_3D_Camera *camera, const Evas_Real *matrix) EINA_ARG_NONNULL(1);
@@ -6444,11 +6538,14 @@ EAPI void               evas_3d_camera_projection_matrix_set(Evas_3D_Camera *cam
 /**
  * Get the projection matrix of the given camera.
  *
- * @param camera     The given camera.
- * @param matrix     Pointer to receive the 16 Evas_Real values in column major order.
+ * @param camera The given camera.
+ * @param matrix Pointer to receive the 16 Evas_Real values in column major
+ *               order.
  *
  * @see evas_3d_camera_projection_matrix_set()
  *
+ * @since 1.10
+ *
  * @ingroup Evas_3D_Camera
  */
 EAPI void               evas_3d_camera_projection_matrix_get(const Evas_3D_Camera *camera, Evas_Real *matrix) EINA_ARG_NONNULL(1, 2);
@@ -6456,13 +6553,14 @@ EAPI void               evas_3d_camera_projection_matrix_get(const Evas_3D_Camer
 /**
  * Set the projection matrix of the given camera with perspective projection.
  *
- * @param camera     The given camera.
- * @param fovy       Field of view angle in Y direction.
- * @param aspect     Aspect ratio.
- * @param near       Distance to near clipping plane.
- * @param far        Distance to far clipping plane.
+ * @param camera The given camera.
+ * @param fovy Field of view angle in Y direction.
+ * @param aspect Aspect ratio.
+ * @param near Distance to near clipping plane.
+ * @param far Distance to far clipping plane.
  *
  * @see evas_3d_camera_projection_matrix_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Camera
  */
@@ -6471,15 +6569,16 @@ EAPI void               evas_3d_camera_projection_perspective_set(Evas_3D_Camera
 /**
  * Set the projection matrix of the given camera with frustum projection.
  *
- * @param camera     The given camera.
- * @param left       Left X coordinate of the near clipping plane.
- * @param right      Right X coordinate of the near clipping plane.
- * @param top        Top Y coordinate of the near clipping plane.
- * @param bottom     Bottom Y coordinate of the near clipping plane.
- * @param near       Distance to near clipping plane.
- * @param far        Distance to far clipping plane.
+ * @param camera The given camera.
+ * @param left Left X coordinate of the near clipping plane.
+ * @param right Right X coordinate of the near clipping plane.
+ * @param top Top Y coordinate of the near clipping plane.
+ * @param bottom Bottom Y coordinate of the near clipping plane.
+ * @param near Distance to near clipping plane.
+ * @param far Distance to far clipping plane.
  *
  * @see evas_3d_camera_projection_matrix_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Camera
  */
@@ -6488,15 +6587,16 @@ EAPI void               evas_3d_camera_projection_frustum_set(Evas_3D_Camera *ca
 /**
  * Set the projection matrix of the given camera with orthogonal projection.
  *
- * @param camera     The given camera.
- * @param left       Left X coordinate of the near clipping plane.
- * @param right      Right X coordinate of the near clipping plane.
- * @param top        Top Y coordinate of the near clipping plane.
- * @param bottom     Bottom Y coordinate of the near clipping plane.
- * @param near       Distance to near clipping plane.
- * @param far        Distance to far clipping plane.
+ * @param camera The given camera.
+ * @param left Left X coordinate of the near clipping plane.
+ * @param right Right X coordinate of the near clipping plane.
+ * @param top Top Y coordinate of the near clipping plane.
+ * @param bottom Bottom Y coordinate of the near clipping plane.
+ * @param near Distance to near clipping plane.
+ * @param far Distance to far clipping plane.
  *
  * @see evas_3d_camera_projection_matrix_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Camera
  */
@@ -6505,8 +6605,10 @@ EAPI void               evas_3d_camera_projection_ortho_set(Evas_3D_Camera *came
 /**
  * Create a new light on the given Evas @p canvas.
  *
- * @param e          The given canvas.
- * @return           The created light handle.
+ * @param e The given canvas.
+ * @return The created light handle.
+ *
+ * @since 1.10
  *
  * @ingroup Evas_3D_Light
  */
@@ -6515,31 +6617,21 @@ EAPI Evas_3D_Light     *evas_3d_light_add(Evas *e) EINA_WARN_UNUSED_RESULT EINA_
 /**
  * Delete a node from its belonging Evas canvas.
  *
- * @param light      The given light.
+ * @param light The given light.
  *
  * @see evas_3d_light_add()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Light
  */
 EAPI void               evas_3d_light_del(Evas_3D_Light *light) EINA_ARG_NONNULL(1);
 
 /**
- * Get the Evas canvas where the given node belongs to.
- *
- * @param light      The given light.
- * @return           The Evas canvas.
- *
- * @see evas_3d_node_add()
- *
- * @ingroup Evas_3D_Light
- */
-//EAPI Evas              *evas_3d_light_evas_get(const Evas_3D_Light *light) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
-
-/**
  * Set the directional flag of the given light.
  *
- * @param light         The given light.
- * @param directional   Whether the light is directional (@c EINA_TRUE), or not (@c EINA_FALSE).
+ * @param light The given light.
+ * @param directional Whether the light is directional (@c EINA_TRUE), or not
+ *                    (@c EINA_FALSE).
  *
  * Directional light is a type of light which is infinitely far away with no
  * attenuation. The light direction is determined by the containing node's
@@ -6548,6 +6640,7 @@ EAPI void               evas_3d_light_del(Evas_3D_Light *light) EINA_ARG_NONNULL
  * By default, directional is not enabled.
  *
  * @see evas_3d_node_look_at_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Light
  */
@@ -6556,10 +6649,11 @@ EAPI void               evas_3d_light_directional_set(Evas_3D_Light *light, Eina
 /**
  * Get the directional flag of the given light.
  *
- * @param light      The given light.
- * @return           @c EINA_TRUE if the light is directional or @c EINA_FALSE if not.
+ * @param light The given light.
+ * @return @c EINA_TRUE if the light is directional or @c EINA_FALSE if not.
  *
  * @see evas_3d_light_directional_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Light
  */
@@ -6568,14 +6662,16 @@ EAPI Eina_Bool          evas_3d_light_directional_get(const Evas_3D_Light *light
 /**
  * Set the ambient color of the given light.
  *
- * @param light      The given light.
- * @param r          Red component of the ambient color between [0.0, 1.0].
- * @param g          Green component of the ambient color between [0.0, 1.0].
- * @param b          Blue component of the ambient color between [0.0, 1.0].
- * @param a          Alpha component of the ambient color between [0.0, 1.0].
+ * @param light The given light.
+ * @param r Red component of the ambient color between [0.0, 1.0].
+ * @param g Green component of the ambient color between [0.0, 1.0].
+ * @param b Blue component of the ambient color between [0.0, 1.0].
+ * @param a Alpha component of the ambient color between [0.0, 1.0].
  *
  * Default ambient color is (0.0, 0.0, 0.0, 1.0).
  *
+ * @since 1.10
+ *
  * @ingroup Evas_3D_Light
  */
 EAPI void               evas_3d_light_ambient_set(Evas_3D_Light *light, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a) EINA_ARG_NONNULL(1);
@@ -6583,13 +6679,14 @@ EAPI void               evas_3d_light_ambient_set(Evas_3D_Light *light, Evas_Rea
 /**
  * Get the ambient color of the given light.
  *
- * @param light      The given light.
- * @param r          Pointer to receive the red component of the ambient color.
- * @param g          Pointer to receive the green component of the ambient color.
- * @param b          Pointer to receive the blue component of the ambient color.
- * @param a          Pointer to receive the alpha component of the ambient color.
+ * @param light The given light.
+ * @param r Pointer to receive the red component of the ambient color.
+ * @param g Pointer to receive the green component of the ambient color.
+ * @param b Pointer to receive the blue component of the ambient color.
+ * @param a Pointer to receive the alpha component of the ambient color.
  *
  * @see evas_3d_light_ambient_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Light
  */
@@ -6598,14 +6695,16 @@ EAPI void               evas_3d_light_ambient_get(const Evas_3D_Light *light, Ev
 /**
  * Set the diffuse color of the given light.
  *
- * @param light      The given light.
- * @param r          Red component of the diffuse color between [0.0, 1.0].
- * @param g          Green component of the diffuse color between [0.0, 1.0].
- * @param b          Blue component of the diffuse color between [0.0, 1.0].
- * @param a          Alpha component of the diffuse color between [0.0, 1.0].
+ * @param light The given light.
+ * @param r Red component of the diffuse color between [0.0, 1.0].
+ * @param g Green component of the diffuse color between [0.0, 1.0].
+ * @param b Blue component of the diffuse color between [0.0, 1.0].
+ * @param a Alpha component of the diffuse color between [0.0, 1.0].
  *
  * Default diffuse color is (1.0, 1.0, 1.0, 1.0).
  *
+ * @since 1.10
+ *
  * @ingroup Evas_3D_Light
  */
 EAPI void               evas_3d_light_diffuse_set(Evas_3D_Light *light, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a) EINA_ARG_NONNULL(1);
@@ -6613,13 +6712,14 @@ EAPI void               evas_3d_light_diffuse_set(Evas_3D_Light *light, Evas_Rea
 /**
  * Get the diffuse color of the given light.
  *
- * @param light      The given light.
- * @param r          Pointer to receive the red component of the diffuse color.
- * @param g          Pointer to receive the green component of the diffuse color.
- * @param b          Pointer to receive the blue component of the diffuse color.
- * @param a          Pointer to receive the alpha component of the diffuse color.
+ * @param light The given light.
+ * @param r Pointer to receive the red component of the diffuse color.
+ * @param g Pointer to receive the green component of the diffuse color.
+ * @param b Pointer to receive the blue component of the diffuse color.
+ * @param a Pointer to receive the alpha component of the diffuse color.
  *
  * @see evas_3d_light_diffuse_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Light
  */
@@ -6628,13 +6728,14 @@ EAPI void               evas_3d_light_diffuse_get(const Evas_3D_Light *light, Ev
 /**
  * Get the specular color of the given light.
  *
- * @param light      The given light.
- * @param r          Pointer to receive the red component of the specular color.
- * @param g          Pointer to receive the green component of the specular color.
- * @param b          Pointer to receive the blue component of the specular color.
- * @param a          Pointer to receive the alpha component of the specular color.
+ * @param light The given light.
+ * @param r Pointer to receive the red component of the specular color.
+ * @param g Pointer to receive the green component of the specular color.
+ * @param b Pointer to receive the blue component of the specular color.
+ * @param a Pointer to receive the alpha component of the specular color.
  *
  * Default specular color is (1.0, 1.0, 1.0, 1.0).
+ * @since 1.10
  *
  * @ingroup Evas_3D_Light
  */
@@ -6643,13 +6744,14 @@ EAPI void               evas_3d_light_specular_set(Evas_3D_Light *light, Evas_Re
 /**
  * Get the specular color of the given light.
  *
- * @param light      The given light.
- * @param r          Pointer to receive the red component of the specular color.
- * @param g          Pointer to receive the green component of the specular color.
- * @param b          Pointer to receive the blue component of the specular color.
- * @param a          Pointer to receive the alpha component of the specular color.
+ * @param light The given light.
+ * @param r Pointer to receive the red component of the specular color.
+ * @param g Pointer to receive the green component of the specular color.
+ * @param b Pointer to receive the blue component of the specular color.
+ * @param a Pointer to receive the alpha component of the specular color.
  *
  * @see evas_3d_light_specular_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Light
  */
@@ -6658,8 +6760,8 @@ EAPI void               evas_3d_light_specular_get(const Evas_3D_Light *light, E
 /**
  * Set the spot exponent of the given light.
  *
- * @param light      The given light.
- * @param exponent   Spot exponent value.
+ * @param light The given light.
+ * @param exponent Spot exponent value.
  *
  * Higher spot exponent means intensity at the center of the cone is relatively
  * stronger. Zero exponent means the light intensity is evenly distibuted. The
@@ -6668,7 +6770,8 @@ EAPI void               evas_3d_light_specular_get(const Evas_3D_Light *light, E
  *
  * Default spot exponent is 0.
  *
- * @see evas_3d_light_spot_cutoff_set()
+ * @see evas_3d_light_spot_cutoff_set()i
+ * @since 1.10
  *
  * @ingroup Evas_3D_Light
  */
@@ -6677,10 +6780,11 @@ EAPI void               evas_3d_light_spot_exponent_set(Evas_3D_Light *light, Ev
 /**
  * Get the spot exponent of the given light.
  *
- * @param light      The given light.
- * @return           The spot exponent value.
+ * @param light The given light.
+ * @return The spot exponent value.
  *
  * @see evas_3d_light_spot_exponent_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Light
  */
@@ -6689,14 +6793,16 @@ EAPI Evas_Real          evas_3d_light_spot_exponent_get(const Evas_3D_Light *lig
 /**
  * Set the spot cutoff angle of the given light.
  *
- * @param light      The given light.
- * @param cutoff     Cutoff angle in degree.
+ * @param light The given light.
+ * @param cutoff Cutoff angle in degree.
  *
  * Only angle less than 180 degree will make it spot light, so that other spot
  * light attribute will take effect.
  *
  * Default spot cutoff angle is 180.
  *
+ * @since 1.10
+ *
  * @ingroup Evas_3D_Light
  */
 EAPI void               evas_3d_light_spot_cutoff_set(Evas_3D_Light *light, Evas_Real cutoff) EINA_ARG_NONNULL(1);
@@ -6704,10 +6810,11 @@ EAPI void               evas_3d_light_spot_cutoff_set(Evas_3D_Light *light, Evas
 /**
  * Get the spot cutoff angle of the given light.
  *
- * @param light      The given light.
- * @return           Cutoff angle in degree.
+ * @param light The given light.
+ * @return Cutoff angle in degree.
  *
  * @see evas_3d_light_spot_cutoff_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Light
  */
@@ -6716,10 +6823,10 @@ EAPI Evas_Real          evas_3d_light_spot_cutoff_get(const Evas_3D_Light *light
 /**
  * Set the attenuation of the given light.
  *
- * @param light      The given light.
- * @param constant   Constant attenuation term.
- * @param linear     Linear attenuation term.
- * @param quadratic  Quadratic attenuation term.
+ * @param light The given light.
+ * @param constant Constant attenuation term.
+ * @param linear Linear attenuation term.
+ * @param quadratic Quadratic attenuation term.
  *
  * Light attenuation has no effect with directional light. And the attenuation
  * should be enabled first to take effect. The attenuation factor is calculated
@@ -6730,6 +6837,7 @@ EAPI Evas_Real          evas_3d_light_spot_cutoff_get(const Evas_3D_Light *light
  * Default attenuation is constant = 1.0, linear = 0.0, quadratic = 0.0.
  *
  * @see evas_3d_light_attenuation_enable_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Light
  */
@@ -6738,12 +6846,13 @@ EAPI void               evas_3d_light_attenuation_set(Evas_3D_Light *light, Evas
 /**
  * Get the attenuation of the given light.
  *
- * @param light      The given light.
- * @param constant   Pointer to receive constant attenuation term.
- * @param linear     Pointer to receive linear attenuation term.
- * @param quadratic  Pointer to receive quadratic attenuation term.
+ * @param light The given light.
+ * @param constant Pointer to receive constant attenuation term.
+ * @param linear Pointer to receive linear attenuation term.
+ * @param quadratic Pointer to receive quadratic attenuation term.
  *
  * @see evas_3d_light_attenuation_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Light
  */
@@ -6752,12 +6861,14 @@ EAPI void               evas_3d_light_attenuation_get(const Evas_3D_Light *light
 /**
  * Set the attenuation enable flag of the given light.
  *
- * @param light      The given light.
- * @param enable     Whether to enable attenuation (@c EINA_TRUE), or not (@c EINA_FALSE).
+ * @param light The given light.
+ * @param enable Whether to enable attenuation (@c EINA_TRUE), or not
+ *       (@c EINA_FALSE).
  *
  * By default, light attenuation is not enabled.
  *
  * @see evas_3d_light_attenuation_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Light
  */
@@ -6766,10 +6877,11 @@ EAPI void               evas_3d_light_attenuation_enable_set(Evas_3D_Light *ligh
 /**
  * Get the attenuation enable flag of the given light.
  *
- * @param light      The given light.
- * @return           @c EINA_TRUE if enabled, or @c EINA_FALSE if not.
+ * @param light The given light.
+ * @return @c EINA_TRUE if enabled, or @c EINA_FALSE if not.
  *
  * @see evas_3d_light_attenuation_enable_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Light
  */
@@ -6778,8 +6890,10 @@ EAPI Eina_Bool          evas_3d_light_attenuation_enable_get(const Evas_3D_Light
 /**
  * Create a new mesh on the given Evas @p canvas.
  *
- * @param e       The given canvas.
- * @return        The created mesh handle.
+ * @param e  The given canvas.
+ * @return The created mesh handle.
+ *
+ * @since 1.10
  *
  * @ingroup Evas_3D_Mesh
  */
@@ -6788,34 +6902,25 @@ EAPI Evas_3D_Mesh      *evas_3d_mesh_add(Evas *e) EINA_WARN_UNUSED_RESULT EINA_A
 /**
  * Delete a mesh from its belonging Evas canvas.
  *
- * @param mesh    The given mesh.
+ * @param mesh The given mesh.
  *
  * @see evas_3d_mesh_add()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Mesh
  */
 EAPI void               evas_3d_mesh_del(Evas_3D_Mesh *mesh) EINA_ARG_NONNULL(1);
 
 /**
- * Get the Evas canvas where the given node belongs to.
- *
- * @param mesh    The given mesh.
- * @return        The Evas canvas.
- *
- * @see evas_3d_mesh_add()
- *
- * @ingroup Evas_3D_Mesh
- */
-//EAPI Evas              *evas_3d_mesh_evas_get(const Evas_3D_Mesh *mesh) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
-
-/**
  * Set the shade mode of the given mesh.
  *
- * @param mesh    The given mesh.
- * @param mode    The shade mode.
+ * @param mesh The given mesh.
+ * @param mode The shade mode.
  *
  * Default shade mode is EVAS_3D_SHADE_MODE_VERTEX_COLOR.
  *
+ * @since 1.10
+ *
  * @ingroup Evas_3D_Mesh
  */
 EAPI void               evas_3d_mesh_shade_mode_set(Evas_3D_Mesh *mesh, Evas_3D_Shade_Mode mode) EINA_ARG_NONNULL(1);
@@ -6823,10 +6928,11 @@ EAPI void               evas_3d_mesh_shade_mode_set(Evas_3D_Mesh *mesh, Evas_3D_
 /**
  * Get the shade mode of the given mesh.
  *
- * @param mesh    The given mesh.
- * @return        The shade mode.
+ * @param mesh The given mesh.
+ * @return The shade mode.
  *
  * @see eavs_3d_mesh_shade_mode_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Mesh
  */
@@ -6835,23 +6941,24 @@ EAPI Evas_3D_Shade_Mode evas_3d_mesh_shade_mode_get(const Evas_3D_Mesh *mesh) EI
 /**
  * Load mesh data from file.
  *
- * @param mesh    The given mesh.
- * @param type    The type of the mesh file.
- * @param file    Path to the mesh file.
- * @param key     Key in the mesh file.
+ * @param mesh The given mesh.
+ * @param type The type of the mesh file.
+ * @param file Path to the mesh file.
+ * @param key Key in the mesh file.
  *
  * Loading a mesh from existing file is supported. Currently, only MD2 file
  * format is supported.
  *
  * @ingroup Evas_3D_Mesh
+ * @since 1.10
  */
 EAPI void               evas_3d_mesh_file_set(Evas_3D_Mesh *mesh, Evas_3D_Mesh_File_Type type, const char *file, const char *key) EINA_ARG_NONNULL(1);
 
 /**
  * Set the vertex count of the given mesh.
  *
- * @param mesh    The given mesh.
- * @param count   Vertex count.
+ * @param mesh The given mesh.
+ * @param count Vertex count.
  *
  * Each key frame should have same vertex count to be properly interpolated.
  * Key frames have their own vertex data and the data should have more vertices
@@ -6859,6 +6966,8 @@ EAPI void               evas_3d_mesh_file_set(Evas_3D_Mesh *mesh, Evas_3D_Mesh_F
  *
  * Default vertex count is 0.
  *
+ * @since 1.10
+ *
  * @ingroup Evas_3D_Mesh
  */
 EAPI void               evas_3d_mesh_vertex_count_set(Evas_3D_Mesh *mesh, unsigned int count) EINA_ARG_NONNULL(1);
@@ -6866,11 +6975,13 @@ EAPI void               evas_3d_mesh_vertex_count_set(Evas_3D_Mesh *mesh, unsign
 /**
  * Get the vertex count of the given mesh.
  *
- * @param mesh    The given mesh.
- * @return        Vertex count.
+ * @param mesh The given mesh.
+ * @return Vertex count.
  *
  * @see evas_3d_mesh_vertex_count_set()
  *
+ * @since 1.10
+ *
  * @ingroup Evas_3D_Mesh
  */
 EAPI int                evas_3d_mesh_vertex_count_get(const Evas_3D_Mesh *mesh) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
@@ -6878,10 +6989,12 @@ EAPI int                evas_3d_mesh_vertex_count_get(const Evas_3D_Mesh *mesh)
 /**
  * Add a key frame to the given mesh.
  *
- * @param mesh    The given mesh.
- * @param frame   The number of the key frame to be added.
+ * @param mesh The given mesh.
+ * @param frame The number of the key frame to be added.
+ *
+ * If specified frame is already exist, nothing will be happened.
  *
- * If specified frame is already exist, error message will be generated.
+ * @since 1.10
  *
  * @ingroup Evas_3D_Mesh
  */
@@ -6890,10 +7003,11 @@ EAPI void               evas_3d_mesh_frame_add(Evas_3D_Mesh *mesh, int frame) EI
 /**
  * Delete a key frame from the given mesh.
  *
- * @param mesh    The given mesh.
- * @param frame   The number of the key frame to be deleted.
+ * @param mesh The given mesh.
+ * @param frame The number of the key frame to be deleted.
  *
  * @see evas_3d_mesh_frame_add()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Mesh
  */
@@ -6902,13 +7016,16 @@ EAPI void               evas_3d_mesh_frame_del(Evas_3D_Mesh *mesh, int frame) EI
 /**
  * Set the material of the key frame of the given mesh.
  *
- * @param mesh       The given mesh.
- * @param frame      The number of the key frame.
- * @param material   The material to be set to the key frame.
+ * @param mesh The given mesh.
+ * @param frame The number of the key frame.
+ * @param material The material to be set to the key frame.
  *
  * Setting different materials for each key frame is useful for doing animations
  * like GIF images or color changing animationas.
  *
+ * @see evas_3d_mesh_frame_add()
+ * @since 1.10
+ *
  * @ingroup Evas_3D_Mesh
  */
 EAPI void               evas_3d_mesh_frame_material_set(Evas_3D_Mesh *mesh, int frame, Evas_3D_Material *material) EINA_ARG_NONNULL(1);
@@ -6916,11 +7033,12 @@ EAPI void               evas_3d_mesh_frame_material_set(Evas_3D_Mesh *mesh, int
 /**
  * Get the material of the key frame of the given mesh.
  *
- * @param mesh       The given mesh.
- * @param frame      The number of the key frame.
- * @return           The material of the key frame.
+ * @param mesh The given mesh.
+ * @param frame The number of the key frame.
+ * @return The material of the key frame.
  *
  * @see evas_3d_mesh_frame_material_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Mesh
  */
@@ -6929,11 +7047,11 @@ EAPI Evas_3D_Material  *evas_3d_mesh_frame_material_get(const Evas_3D_Mesh *mesh
 /**
  * Set the vertex data of the key frame of the given mesh.
  *
- * @param mesh       The given mesh.
- * @param frame      The number of the key frame.
- * @param attrib     Vertex attribute ID.
- * @param stride     Stride to go to the next vertex (in bytes).
- * @param data       Pointer to the vertex data buffer.
+ * @param mesh The given mesh.
+ * @param frame The number of the key frame.
+ * @param attrib Vertex attribute ID.
+ * @param stride Stride to go to the next vertex (in bytes).
+ * @param data Pointer to the vertex data buffer.
  *
  * This function make evas read from the given buffer whenever it requires.
  * If you want to release the buffer after calling this functions, use
@@ -6942,28 +7060,32 @@ EAPI Evas_3D_Material  *evas_3d_mesh_frame_material_get(const Evas_3D_Mesh *mesh
  * After setting the vertex data, further modifications should be protected
  * by map/unmap pair.
  *
+ * @see evas_3d_mesh_frame_add()
  * @see evas_3d_mesh_frame_vertex_data_copy_set()
  * @see evas_3d_mesh_frame_vertex_data_map()
  * @see evas_3d_mesh_frame_vertex_data_unmap()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Mesh
  */
 EAPI void               evas_3d_mesh_frame_vertex_data_set(Evas_3D_Mesh *mesh, int frame, Evas_3D_Vertex_Attrib attrib, int stride, const void *data) EINA_ARG_NONNULL(1);
 
 /**
- * Set the vertex data of the key frame of the given mesh by copying from a buffer.
+ * Set the vertex data of the key frame of the given mesh by copying from a
+ * buffer.
  *
- * @param mesh       The given mesh.
- * @param frame      The number of the key frame.
- * @param attrib     Vertex attribute ID.
- * @param stride     Stride to go to the next vertex (in bytes).
- * @param data       Pointer to the vertex data buffer.
+ * @param mesh The given mesh.
+ * @param frame The number of the key frame.
+ * @param attrib Vertex attribute ID.
+ * @param stride Stride to go to the next vertex (in bytes).
+ * @param data Pointer to the vertex data buffer.
  *
  * This function allocates internal vertex buffer and copy from the given
  * buffer. So you can release the buffer. If you want to modify the vertex data
  * use evas_3d_mesh_frame_vertex_data_map(). After finishing the modifications,
  * you should call evas_3d_mesh_frame_vertex_data_unmap().
  *
+ * @see evas_3d_mesh_frame_add()
  * @see evas_3d_mesh_frame_vertex_data_set()
  * @see evas_3d_mesh_frame_vertex_data_map()
  * @see evas_3d_mesh_frame_vertex_data_unmap()
@@ -6975,10 +7097,10 @@ EAPI void               evas_3d_mesh_frame_vertex_data_copy_set(Evas_3D_Mesh *me
 /**
  * Map the vertex buffer of the key frame of the given mesh.
  *
- * @param mesh       The given mesh.
- * @param frame      The number of the key frame.
- * @param attrib     Vertex attribute ID.
- * @return           Starting address of the mapped vertex buffer.
+ * @param mesh The given mesh.
+ * @param frame The number of the key frame.
+ * @param attrib Vertex attribute ID.
+ * @return Starting address of the mapped vertex buffer.
  *
  * After manipulating the mapped buffer, evas_3d_mesh_frame_vertex_data_unmap()
  * should be called to properly download the data to the engine. If the data
@@ -6987,6 +7109,7 @@ EAPI void               evas_3d_mesh_frame_vertex_data_copy_set(Evas_3D_Mesh *me
  * time calling this function.
  *
  * @see evas_3d_mesh_frame_vertex_data_unmap()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Mesh
  */
@@ -6995,11 +7118,12 @@ EAPI void              *evas_3d_mesh_frame_vertex_data_map(Evas_3D_Mesh *mesh, i
 /**
  * Unmap the vertex buffer of the key frame of the given mesh.
  *
- * @param mesh       The given mesh.
- * @param frame      The number of the key frame.
- * @param attrib     Vertex attribute ID.
+ * @param mesh The given mesh.
+ * @param frame The number of the key frame.
+ * @param attrib Vertex attribute ID.
  *
  * @see evas_3d_mesh_frame_vertex_data_map()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Mesh
  */
@@ -7008,16 +7132,17 @@ EAPI void               evas_3d_mesh_frame_vertex_data_unmap(Evas_3D_Mesh *mesh,
 /**
  * Get the vertex buffer stride of the key frame of the given mesh.
  *
- * @param mesh       The given mesh.
- * @param frame      The number of the key frame.
- * @param attrib     Vertex attribute ID.
- * @return           Stride to go to the next vertex (in bytes).
+ * @param mesh The given mesh.
+ * @param frame The number of the key frame.
+ * @param attrib Vertex attribute ID.
+ * @return Stride to go to the next vertex (in bytes).
  *
  * This function returns valid stride only when the vertex buffer is mapped.
  * If the data was set with evas_3d_mesh_frame_vertex_data_set(), the original
  * stride will be returned unchanged.
  *
  * @see evas_3d_mesh_frame_vertex_data_map()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Mesh
  */
@@ -7026,10 +7151,10 @@ EAPI int                evas_3d_mesh_frame_vertex_stride_get(const Evas_3D_Mesh
 /**
  * Set the vertex index data of the given mesh.
  *
- * @param mesh       The given mesh.
- * @param format     Vertex index data format.
- * @param count      Vertex index count.
- * @param indices    Pointer to the index data.
+ * @param mesh The given mesh.
+ * @param format Vertex index data format.
+ * @param count Vertex index count.
+ * @param indices Pointer to the index data.
  *
  * When the index data is set, Evas 3D assembles vertices using the index data.
  * If you want to free the data buffer, use evas_3d_mesh_index_data_copy_set().
@@ -7038,6 +7163,7 @@ EAPI int                evas_3d_mesh_frame_vertex_stride_get(const Evas_3D_Mesh
  * @see evas_3d_mesh_index_data_copy_set()
  * @see evas_3d_mesh_index_data_map()
  * @see evas_3d_mesh_index_data_unmap()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Mesh
  */
@@ -7046,15 +7172,16 @@ EAPI void               evas_3d_mesh_index_data_set(Evas_3D_Mesh *mesh, Evas_3D_
 /**
  * Set the vertex index data of the given mesh by copying from a buffer.
  *
- * @param mesh       The given mesh.
- * @param format     Vertex index data format.
- * @param count      Vertex index count.
- * @param indices    Pointer to the vertex data.
+ * @param mesh The given mesh.
+ * @param format Vertex index data format.
+ * @param count Vertex index count.
+ * @param indices Pointer to the vertex data.
  *
  * This function allocates internal index buffer any copy data from the given
  * buffer. Futher modifications can be made within map/unmap pair.
  *
  * @see evas_3d_mesh_index_data_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Mesh
  */
@@ -7063,8 +7190,8 @@ EAPI void               evas_3d_mesh_index_data_copy_set(Evas_3D_Mesh *mesh, Eva
 /**
  * Get the format of the index data of the given mesh.
  *
- * @param mesh       The given mesh.
- * @return           Format of the index data.
+ * @param mesh The given mesh.
+ * @return Format of the index data.
  *
  * Returns valid format only when the index buffer is mapped. First map the
  * index buffer and then query the properties of the mapped buffer. If the index
@@ -7073,6 +7200,7 @@ EAPI void               evas_3d_mesh_index_data_copy_set(Evas_3D_Mesh *mesh, Eva
  * evas_3d_mesh_index_data_map() function.
  *
  * @see evas_3d_mesh_index_data_map()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Mesh
  */
@@ -7081,13 +7209,14 @@ EAPI Evas_3D_Index_Format evas_3d_mesh_index_format_get(const Evas_3D_Mesh *mesh
 /**
  * Get the count of the index data of the given mesh.
  *
- * @param mesh       The given mesh.
- * @return           Index data count.
+ * @param mesh The given mesh.
+ * @return Index data count.
  *
  * This function returns the index count of the last called data_set function.
  *
  * @see evas_3d_mesh_index_data_set()
  * @see evas_3d_mesh_index_data_copy_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Mesh
  */
@@ -7096,8 +7225,8 @@ EAPI int                evas_3d_mesh_index_count_get(const Evas_3D_Mesh *mesh) E
 /**
  * Map the index buffer of the given mesh.
  *
- * @param mesh       The given mesh.
- * @return           Pointer to the mapped buffer.
+ * @param mesh The given mesh.
+ * @return Pointer to the mapped buffer.
  *
  * evas_3d_mesh_index_data_unmap() should be called after modifications. If the
  * data was set using evas_3d_mesh_index_data_set(), the original pointer will
@@ -7105,6 +7234,7 @@ EAPI int                evas_3d_mesh_index_count_get(const Evas_3D_Mesh *mesh) E
  * this function.
  *
  * @see evas_3d_mesh_index_data_unmap()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Mesh
  */
@@ -7113,9 +7243,10 @@ EAPI void              *evas_3d_mesh_index_data_map(Evas_3D_Mesh *mesh) EINA_WAR
 /**
  * Unmap the index buffer of the given mesh.
  *
- * @param mesh       The given mesh.
+ * @param mesh The given mesh.
  *
  * @see evas_3d_mesh_index_data_map()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Mesh
  */
@@ -7124,14 +7255,16 @@ EAPI void               evas_3d_mesh_index_data_unmap(Evas_3D_Mesh *mesh) EINA_A
 /**
  * Set the vertex assembly of the given mesh.
  *
- * @param mesh       The given mesh.
- * @param assembly   Vertex assembly.
+ * @param mesh The given mesh.
+ * @param assembly Vertex assembly.
  *
  * Vertex assembly defines how the engine organizes vertices into geometric
  * primitives.
  *
  * Default vertex assembly is EVAS_3D_VERTEX_ASSEMBLY_TRIANGLES.
  *
+ * @since 1.10
+ *
  * @ingroup Evas_3D_Mesh
  */
 EAPI void               evas_3d_mesh_vertex_assembly_set(Evas_3D_Mesh *mesh, Evas_3D_Vertex_Assembly assembly);
@@ -7139,10 +7272,11 @@ EAPI void               evas_3d_mesh_vertex_assembly_set(Evas_3D_Mesh *mesh, Eva
 /**
  * Get the vertex assembly of the given mesh.
  *
- * @param mesh       The given mesh.
- * @return           The vertex assembly.
+ * @param mesh The given mesh.
+ * @return The vertex assembly.
  *
  * @see evas_3d_mesh_vertex_assembly_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Mesh
  */
@@ -7151,8 +7285,8 @@ EAPI Evas_3D_Vertex_Assembly evas_3d_mesh_vertex_assembly_get(const Evas_3D_Mesh
 /**
  * Create a new texture on the given Evas @p canvas.
  *
- * @param e    The given canvas.
- * @return     The created texture handle.
+ * @param e The given canvas.
+ * @return The created texture handle.
  *
  * @ingroup Evas_3D_Texture
  */
@@ -7170,28 +7304,17 @@ EAPI Evas_3D_Texture   *evas_3d_texture_add(Evas *e) EINA_WARN_UNUSED_RESULT EIN
 EAPI void               evas_3d_texture_del(Evas_3D_Texture *texture) EINA_ARG_NONNULL(1);
 
 /**
- * Get the Evas canvas where the given texture belongs to.
- *
- * @param texture The given texture.
- * @return        The Evas canvas.
- *
- * @see evas_3d_texture_add()
- *
- * @ingroup Evas_3D_Texture
- */
-//EAPI Evas              *evas_3d_texture_evas_get(const Evas_3D_Texture *texture) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
-
-/**
  * Set the data of the given texture.
  *
- * @param texure        The given texture
- * @param color_format  Color format of the texture.
- * @param pixel_format  Pixel format of the data.
- * @param w             Width of the data.
- * @param h             Height of the data.
- * @param data          Pointer to the data.
+ * @param texure The given texture
+ * @param color_format Color format of the texture.
+ * @param pixel_format Pixel format of the data.
+ * @param w Width of the data.
+ * @param h Height of the data.
+ * @param data Pointer to the data.
  *
  * @see evas_3d_texture_file_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Texture
  */
@@ -7200,11 +7323,16 @@ EAPI void               evas_3d_texture_data_set(Evas_3D_Texture *texture, Evas_
 /**
  * Set the data of the given texture from file.
  *
- * @param texture       The given texture.
- * @param file          Path to the image file.
- * @param key           Key in the image file.
+ * @param texture The given texture.
+ * @param file The image file path.
+ * @param key The image key in @p file (if its an Eet one), or @c NULL,
+ *        otherwise.
+ *
+ * If the file supports multiple data stored in it (as Eet files do),
+ * you can specify the key to be used as the index of the image in
+ * this file.
  *
- * Only PNG format is supported.
+ * @since 1.10
  *
  * @ingroup Evas_3D_Texture
  */
@@ -7213,8 +7341,8 @@ EAPI void               evas_3d_texture_file_set(Evas_3D_Texture *texture, const
 /**
  * Set the data of the given texture from an evas object.
  *
- * @param texture       The given texture.
- * @param source        Source evas object to be used as the texture data.
+ * @param texture The given texture.
+ * @param source Source evas object to be used as the texture data.
  *
  * Evas 3D support using existing evas object as a texture source. This feature
  * make it possible using any exisiting evas object inside 3D scene.
@@ -7228,8 +7356,8 @@ EAPI void               evas_3d_texture_source_set(Evas_3D_Texture *texture, Eva
 /**
  * Set the visibility flag of the source evas object of the given texture.
  *
- * @param texture       The given texture.
- * @param visible       @c EINA_TRUE for visible, @c EINA_FALSE for invisible.
+ * @param texture The given texture.
+ * @param visible @c EINA_TRUE for visible, @c EINA_FALSE for invisible.
  *
  * Recommend to call evas_object_show() on the source object and controll the
  * visibility using this function.
@@ -7237,6 +7365,7 @@ EAPI void               evas_3d_texture_source_set(Evas_3D_Texture *texture, Eva
  * By default, source object is visible.
  *
  * @see evas_3d_texture_source_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Texture
  */
@@ -7245,10 +7374,11 @@ EAPI void               evas_3d_texture_source_visible_set(Evas_3D_Texture *text
 /**
  * Get the visibility flag of the source evas object of the given texture.
  *
- * @param texture       The given texture.
- * @return              @c EINA_TRUE if visible, @c EINA_FALSE if invisible.
+ * @param texture The given texture.
+ * @return @c EINA_TRUE if visible, @c EINA_FALSE if invisible.
  *
  * @see evas_3d_texture_source_visible_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Texture
  */
@@ -7257,7 +7387,7 @@ EAPI Eina_Bool          evas_3d_texture_source_visible_get(const Evas_3D_Texture
 /**
  * Get the color format of the given texture.
  *
- * @param texture       The given texture.
+ * @param texture The given texture.
  *
  * EVAS_3D_COLOR_FORMAT_RGBA will be returned if the texture has source object.
  * Otherwise, the color format of the data will be returned.
@@ -7265,6 +7395,7 @@ EAPI Eina_Bool          evas_3d_texture_source_visible_get(const Evas_3D_Texture
  * @see evas_3d_texture_data_set()
  * @see evas_3d_texture_file_set()
  * @see evas_3d_texture_source_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Texture
  */
@@ -7273,9 +7404,9 @@ EAPI Evas_3D_Color_Format evas_3d_texture_color_format_get(const Evas_3D_Texture
 /**
  * Get the size of the given texture.
  *
- * @param texture       The given texture.
- * @param w             Pointer to receive the width of the texture size.
- * @param h             Pointer to receive the height of the texture size.
+ * @param texture The given texture.
+ * @param w Pointer to receive the width of the texture size.
+ * @param h Pointer to receive the height of the texture size.
  *
  * If the texture has source object, the size of the source object will be
  * returned. Otherwise, the size of the data (or image file) will be returned.
@@ -7283,6 +7414,7 @@ EAPI Evas_3D_Color_Format evas_3d_texture_color_format_get(const Evas_3D_Texture
  * @see evas_3d_texture_data_set()
  * @see evas_3d_texture_file_set()
  * @see evas_3d_texture_source_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Texture
  */
@@ -7291,15 +7423,17 @@ EAPI void               evas_3d_texture_size_get(const Evas_3D_Texture *texture,
 /**
  * Set the wrap mode of the given texture.
  *
- * @param texture       The given texture.
- * @param s             Wrap mode for S-axis.
- * @param t             Wrap mode for T-axis.
+ * @param texture The given texture.
+ * @param s Wrap mode for S-axis.
+ * @param t Wrap mode for T-axis.
  *
  * If the texture coordinate exceed range [0.0, 1.0] the values are modified
  * according to the wrap mode.
  *
  * Default wrap modes are both EVAS_3D_WRAP_MODE_CLAMP for s and t.
  *
+ * @since 1.10
+ *
  * @ingroup Evas_3D_Texture
  */
 EAPI void               evas_3d_texture_wrap_set(Evas_3D_Texture *texture, Evas_3D_Wrap_Mode s, Evas_3D_Wrap_Mode t) EINA_ARG_NONNULL(1);
@@ -7307,11 +7441,12 @@ EAPI void               evas_3d_texture_wrap_set(Evas_3D_Texture *texture, Evas_
 /**
  * Get the wrap mode of the given texture.
  *
- * @param texture       The given texture.
- * @param s             Pointer to receive S-axis wrap mode.
- * @param t             Pointer to receive T-axis wrap mode.
+ * @param texture The given texture.
+ * @param s Pointer to receive S-axis wrap mode.
+ * @param t Pointer to receive T-axis wrap mode.
  *
  * @see evas_3d_texture_wrap_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Texture
  */
@@ -7320,12 +7455,14 @@ EAPI void               evas_3d_texture_wrap_get(Evas_3D_Texture *texture, Evas_
 /**
  * Set the filter of the given texture.
  *
- * @param texture       The given texture.
- * @param min           Minification filter used when down-scaling.
- * @param mag           Magnification filter used when up-scaling.
+ * @param texture The given texture.
+ * @param min Minification filter used when down-scaling.
+ * @param mag Magnification filter used when up-scaling.
  *
  * Default filters are both EVAS_3D_TEXTURE_FILTER_NEAREST for s and t.
  *
+ * @since 1.10
+ *
  * @ingroup Evas_3D_Texture
  */
 EAPI void               evas_3d_texture_filter_set(Evas_3D_Texture *texture, Evas_3D_Texture_Filter min, Evas_3D_Texture_Filter mag) EINA_ARG_NONNULL(1);
@@ -7333,11 +7470,12 @@ EAPI void               evas_3d_texture_filter_set(Evas_3D_Texture *texture, Eva
 /**
  * Get the filter of the given texture.
  *
- * @param texture       The given texture.
- * @param min           Pointer to receive the minification filter.
- * @param mag           Pointer to receive the magnification filter.
+ * @param texture The given texture.
+ * @param min Pointer to receive the minification filter.
+ * @param mag Pointer to receive the magnification filter.
  *
  * @see evas_3d_texture_filter_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Texture
  */
@@ -7346,9 +7484,11 @@ EAPI void               evas_3d_texture_filter_get(const Evas_3D_Texture *textur
 /**
  * Create a new material on the given Evas @p canvas.
  *
- * @param e    The given canvas.
+ * @param e The given canvas.
  * @param type The type of the material.
- * @return     The created material handle.
+ * @return The created material handle.
+ *
+ * @since 1.10
  *
  * @ingroup Evas_3D_Material
  */
@@ -7360,29 +7500,19 @@ EAPI Evas_3D_Material  *evas_3d_material_add(Evas *e) EINA_WARN_UNUSED_RESULT EI
  * @param material The given material.
  *
  * @see evas_3d_material_add()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Material
  */
 EAPI void               evas_3d_material_del(Evas_3D_Material *material) EINA_ARG_NONNULL(1);
 
 /**
- * Get the Evas canvas where the given material belongs to.
- *
- * @param material The given material.
- * @return     The Evas canvas.
- *
- * @see evas_3d_material_add()
- *
- * @ingroup Evas_3D_Material
- */
-//EAPI Evas              *evas_3d_material_evas_get(const Evas_3D_Material *material) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
-
-/**
  * Set the material attribute enable flag of the given material.
  *
- * @param material      The given material.
- * @param attrib        Material attribute ID.
- * @param enable        Whether to enable the attribute (@c EINA_TRUE), or not (@c EINA_FALSE).
+ * @param material The given material.
+ * @param attrib Material attribute ID.
+ * @param enable Whether to enable the attribute (@c EINA_TRUE), or not
+ *        (@c EINA_FALSE).
  *
  * You might want to disable some material reflection contribution. For
  * example,Emission attribute is rarely used. Disabling unused attributes
@@ -7390,6 +7520,8 @@ EAPI void               evas_3d_material_del(Evas_3D_Material *material) EINA_AR
  *
  * By default, diffuse and specular is enabled.
  *
+ * @since 1.10
+ *
  * @ingroup Evas_3D_Material
  */
 EAPI void               evas_3d_material_enable_set(Evas_3D_Material *material, Evas_3D_Material_Attrib attrib, Eina_Bool enable) EINA_ARG_NONNULL(1);
@@ -7397,11 +7529,12 @@ EAPI void               evas_3d_material_enable_set(Evas_3D_Material *material,
 /**
  * Get the material attribute enable flag of the given material.
  *
- * @param material      The given material.
- * @param attrib        Material attribute ID.
- * @return              @c EINA_TRUE if enabled, or @c EINA_FALSE if not.
+ * @param material The given material.
+ * @param attrib Material attribute ID.
+ * @return @c EINA_TRUE if enabled, or @c EINA_FALSE if not.
  *
  * @see evas_3d_material_enable_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Material
  */
@@ -7410,12 +7543,12 @@ EAPI Eina_Bool          evas_3d_material_enable_get(const Evas_3D_Material *mate
 /**
  * Set the material attribute color of the given material.
  *
- * @param material      The given material.
- * @param attrib        Material attribute ID.
- * @param r             Red component of the color.
- * @param g             Green component of the color.
- * @param b             Blue component of the color.
- * @param a             Alpha component of the color.
+ * @param material The given material.
+ * @param attrib Material attribute ID.
+ * @param r Red component of the color.
+ * @param g Green component of the color.
+ * @param b Blue component of the color.
+ * @param a Alpha component of the color.
  *
  * Material color is used also when texture map is enabled. The colors will be
  * modulated (multiplied). To controll the color contribution of a material
@@ -7430,6 +7563,8 @@ EAPI Eina_Bool          evas_3d_material_enable_get(const Evas_3D_Material *mate
  * Emission : (0.0, 0.0, 0.0, 1.0)
  * Normal   : Not used
  *
+ * @since 1.10
+ *
  * @ingroup Evas_3D_Material
  */
 EAPI void               evas_3d_material_color_set(Evas_3D_Material *material, Evas_3D_Material_Attrib attrib, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a) EINA_ARG_NONNULL(1);
@@ -7437,14 +7572,15 @@ EAPI void               evas_3d_material_color_set(Evas_3D_Material *material, E
 /**
  * Get the material attribute color of the given material.
  *
- * @param material      The given material.
- * @param attrib        Material attribute ID.
- * @param r             Pointer to receive red component of the color.
- * @param g             Pointer to receive green component of the color.
- * @param b             Pointer to receive blue component of the color.
- * @param a             Pointer to receive alpha component of the color.
+ * @param material The given material.
+ * @param attrib Material attribute ID.
+ * @param r Pointer to receive red component of the color.
+ * @param g Pointer to receive green component of the color.
+ * @param b Pointer to receive blue component of the color.
+ * @param a Pointer to receive alpha component of the color.
  *
  * @see evas_3d_material_color_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Material
  */
@@ -7453,8 +7589,8 @@ EAPI void               evas_3d_material_color_get(const Evas_3D_Material *mater
 /**
  * Set the shininess of the given material.
  *
- * @param material      The given material.
- * @param shininess     Shininess value.
+ * @param material The given material.
+ * @param shininess Shininess value.
  *
  * Shininess is only used when specular attribute is enabled. Higher shininess
  * value will make the object more shiny.
@@ -7462,6 +7598,7 @@ EAPI void               evas_3d_material_color_get(const Evas_3D_Material *mater
  * Default shininess value is 150.0.
  *
  * @see evas_3d_material_enable_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Material
  */
@@ -7470,10 +7607,11 @@ EAPI void               evas_3d_material_shininess_set(Evas_3D_Material *materia
 /**
  * Get the shininess of the given material.
  *
- * @param material      The given material.
- * @return              The shininess value.
+ * @param material The given material.
+ * @return The shininess value.
  *
  * @see evas_3d_material_shininess_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Material
  */
@@ -7482,13 +7620,14 @@ EAPI Evas_Real          evas_3d_material_shininess_get(const Evas_3D_Material *m
 /**
  * Set the texture of the given material.
  *
- * @param material      The given material.
- * @param attrib        Material attribute ID.
- * @param texture       Texture to be set.
+ * @param material The given material.
+ * @param attrib Material attribute ID.
+ * @param texture Texture to be set.
  *
  * You have to enable the desired attribute first.
  *
  * @see evas_3d_material_enable_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Material
  */
@@ -7497,11 +7636,12 @@ EAPI void               evas_3d_material_texture_set(Evas_3D_Material *material,
 /**
  * Get the texture of the given material.
  *
- * @param material      The given material.
- * @param attrib        Material attribute ID.
- * @return              The texture that is set to the given material attribute.
+ * @param material The given material.
+ * @param attrib Material attribute ID.
+ * @return The texture that is set to the given material attribute.
  *
  * @see evas_3d_material_texture_set()
+ * @since 1.10
  *
  * @ingroup Evas_3D_Material
  */
diff --git a/src/lib/evas/include/evas_3d_private.h b/src/lib/evas/include/evas_3d_private.h
deleted file mode 100644 (file)
index 9e5f5f8..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
index 8933c45..68f3ccd 100644 (file)
@@ -622,11 +622,12 @@ evas_mat4_copy(Evas_Mat4 *dst, const Evas_Mat4 *src)
 }
 
 static inline void
-evas_mat4_nocheck_multiply(Evas_Mat4 *out, const Evas_Mat4 *mat_a, const Evas_Mat4 *mat_b)
+evas_mat4_nocheck_multiply(Evas_Mat4 *out, const Evas_Mat4 *mat_a,
+                           const Evas_Mat4 *mat_b)
 {
-   Evas_Real        *d = &out->m[0];
-   const Evas_Real  *a = &mat_a->m[0];
-   const Evas_Real  *b = &mat_b->m[0];
+   Evas_Real *d = out->m;
+   const Evas_Real *a = mat_a->m;
+   const Evas_Real *b = mat_b->m;
 
    if (mat_a->flags & EVAS_MATRIX_IS_IDENTITY)
      {
@@ -664,7 +665,8 @@ evas_mat4_nocheck_multiply(Evas_Mat4 *out, const Evas_Mat4 *mat_a, const Evas_Ma
 }
 
 static inline void
-evas_mat4_multiply(Evas_Mat4 *out, const Evas_Mat4 *mat_a, const Evas_Mat4 *mat_b)
+evas_mat4_multiply(Evas_Mat4 *out, const Evas_Mat4 *mat_a,
+                   const Evas_Mat4 *mat_b)
 {
    if (out != mat_a && out != mat_b)
      {
@@ -785,9 +787,9 @@ evas_mat4_ortho_set(Evas_Mat4 *m,
 static inline void
 evas_mat4_nocheck_inverse(Evas_Mat4 *out, const Evas_Mat4 *mat)
 {
-   Evas_Real        *d = &out->m[0];
-   const Evas_Real  *m = &mat->m[0];
-   Evas_Real         det;
+   Evas_Real *d = out->m;
+   const Evas_Real *m = mat->m;
+   Evas_Real det;
 
    if (mat->flags & EVAS_MATRIX_IS_IDENTITY)
      {
@@ -909,8 +911,7 @@ evas_mat4_nocheck_inverse(Evas_Mat4 *out, const Evas_Mat4 *mat)
 
    det = m[0] * d[0] + m[1] * d[4] + m[2] * d[8] + m[3] * d[12];
 
-   if (det == 0.0)
-     return;
+   if (det == 0.0) return;
 
    det = 1.0 / det;
 
@@ -1016,9 +1017,9 @@ evas_mat3_copy(Evas_Mat3 *dst, const Evas_Mat3 *src)
 static inline void
 evas_mat3_nocheck_multiply(Evas_Mat3 *out, const Evas_Mat3 *mat_a, const Evas_Mat3 *mat_b)
 {
-   Evas_Real        *d = &out->m[0];
-   const Evas_Real  *a = &mat_a->m[0];
-   const Evas_Real  *b = &mat_b->m[0];
+   Evas_Real *d = out->m;
+   const Evas_Real *a = mat_a->m;
+   const Evas_Real *b = mat_b->m;
 
    if (mat_a->flags & EVAS_MATRIX_IS_IDENTITY)
      {
@@ -1236,7 +1237,8 @@ evas_mat2_invserse(Evas_Mat2 *out, const Evas_Mat2 *mat)
 }
 
 static inline void
-evas_box2_set(Evas_Box2 *box, Evas_Real x0, Evas_Real y0, Evas_Real x1, Evas_Real y1)
+evas_box2_set(Evas_Box2 *box, Evas_Real x0, Evas_Real y0, Evas_Real x1,
+              Evas_Real y1)
 {
    box->p0.x = x0;
    box->p0.y = y0;
@@ -1245,7 +1247,8 @@ evas_box2_set(Evas_Box2 *box, Evas_Real x0, Evas_Real y0, Evas_Real x1, Evas_Rea
 }
 
 static inline void
-evas_box3_set(Evas_Box3 *box, Evas_Real x0, Evas_Real y0, Evas_Real z0, Evas_Real x1, Evas_Real y1, Evas_Real z1)
+evas_box3_set(Evas_Box3 *box, Evas_Real x0, Evas_Real y0, Evas_Real z0,
+              Evas_Real x1, Evas_Real y1, Evas_Real z1)
 {
    box->p0.x = x0;
    box->p0.y = y0;
@@ -1481,17 +1484,18 @@ evas_color_blend(Evas_Color *dst, const Evas_Color *c0, const Evas_Color *c1, Ev
 static inline void
 evas_ray3_init(Evas_Ray3 *ray, Evas_Real x, Evas_Real y, const Evas_Mat4 *mvp)
 {
-   Evas_Mat4   mat;
-   Evas_Vec4   near, far;
+   Evas_Mat4 mat;
+   Evas_Vec4 near, far;
 
-   /* Get the matrix which transforms from normalized device coordinate to modeling coodrinate. */
+   /* Get the matrix which transforms from normalized device coordinate to
+      modeling coodrinate. */
    evas_mat4_inverse(&mat, mvp);
 
    /* Transform near point. */
-   near.x =    x;
-   near.y =    y;
+   near.x = x;
+   near.y = y;
    near.z = -1.0;
-   near.w =  1.0;
+   near.w = 1.0;
 
    evas_vec4_transform(&near, &near, &mat);
 
@@ -1503,10 +1507,10 @@ evas_ray3_init(Evas_Ray3 *ray, Evas_Real x, Evas_Real y, const Evas_Mat4 *mvp)
    evas_vec3_set(&ray->org, near.x, near.y, near.z);
 
    /* Transform far point. */
-   far.x =     x;
-   far.y =     y;
-   far.z =   1.0;
-   far.w =   1.0;
+   far.x = x;
+   far.y = y;
+   far.z = 1.0;
+   far.w = 1.0;
 
    evas_vec4_transform(&far, &far, &mat);
 
index 123e489..8296fc7 100644 (file)
@@ -135,10 +135,6 @@ struct _Evas_3D_Node
    Evas_Vec4         orientation_world;
    Evas_Vec3         scale_world;
 
-   Eina_Bool         position_inherit;
-   Eina_Bool         orientation_inherit;
-   Eina_Bool         scale_inherit;
-
    Evas_Box3         aabb;
 
    Evas_3D_Node_Type type;
@@ -167,6 +163,10 @@ struct _Evas_3D_Node
 
    /* Scene using this node as camera. */
    Eina_Hash        *scenes_camera;
+
+   Eina_Bool         position_inherit : 1;
+   Eina_Bool         orientation_inherit : 1;
+   Eina_Bool         scale_inherit : 1;
 };
 
 struct _Evas_3D_Camera