From 433699e976d21efd219c9c4660aa4975a4cc56da Mon Sep 17 00:00:00 2001 From: ChunEon Park Date: Wed, 16 Apr 2014 16:31:14 +0900 Subject: [PATCH] evas/evas3d: cleanup docs and removed unncessary files. Conflicts: src/lib/evas/Evas_Legacy.h --- src/Makefile_Evas.am | 3 +- src/lib/evas/Evas_Common.h | 1348 +++++++++++++----------- src/lib/evas/include/evas_3d_private.h | 7 - src/lib/evas/include/evas_3d_utils.h | 54 +- src/lib/evas/include/evas_private.h | 8 +- 5 files changed, 778 insertions(+), 642 deletions(-) delete mode 100644 src/lib/evas/include/evas_3d_private.h diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am index a20b5dbc2c..0648709065 100644 --- a/src/Makefile_Evas.am +++ b/src/Makefile_Evas.am @@ -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 \ diff --git a/src/lib/evas/Evas_Common.h b/src/lib/evas/Evas_Common.h index 6912d96b5a..bab22af087 100644 --- a/src/lib/evas/Evas_Common.h +++ b/src/lib/evas/Evas_Common.h @@ -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. + * Create a new scene object on the given Evas @p e canvas. * - * @param obj Image object. - * @param scene Scene object used as a content of the given image object. + * @param e The given canvas. + * @return A new scene 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. - * - * 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 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() * + * @since 1.10 + * * @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() - * - * @ingroup Evas_3D_Node - */ -//EAPI Evas *evas_3d_node_evas_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() * + * @since 1.10 + * * @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() - * - * @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); - /** * 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 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. + * 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, error message will be generated. + * If specified frame is already exist, nothing will be happened. + * + * @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 */ @@ -7169,29 +7303,18 @@ 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. * - * Only PNG format is supported. + * 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. + * + * @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 index 9e5f5f8a47..0000000000 --- a/src/lib/evas/include/evas_3d_private.h +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/src/lib/evas/include/evas_3d_utils.h b/src/lib/evas/include/evas_3d_utils.h index 8933c45e7a..68f3ccdb4e 100644 --- a/src/lib/evas/include/evas_3d_utils.h +++ b/src/lib/evas/include/evas_3d_utils.h @@ -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); diff --git a/src/lib/evas/include/evas_private.h b/src/lib/evas/include/evas_private.h index 123e4892ba..8296fc74ba 100644 --- a/src/lib/evas/include/evas_private.h +++ b/src/lib/evas/include/evas_private.h @@ -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