summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChunEon Park <chuneon.park@samsung.com>2014-04-16 16:31:14 +0900
committerChunEon Park <chuneon.park@samsung.com>2014-04-16 16:31:14 +0900
commitc080f567a9579893157c1e3ae63a2d5655ddab60 (patch)
treeb0465d7875eefc3a822cbea85b45093a25cf91fa
parent7103df42e26173c6370a79c60065fe29e8e0a71b (diff)
downloadefl-c080f567a9579893157c1e3ae63a2d5655ddab60.tar.gz
evas/evas3d: cleanup docs and removed unncessary files.
-rw-r--r--src/Makefile_Evas.am1
-rw-r--r--src/lib/evas/Evas_Common.h1348
-rw-r--r--src/lib/evas/Evas_Legacy.h31
-rw-r--r--src/lib/evas/include/evas_3d_private.h7
-rw-r--r--src/lib/evas/include/evas_3d_utils.h54
-rw-r--r--src/lib/evas/include/evas_private.h8
6 files changed, 808 insertions, 641 deletions
diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am
index c49046e014..d6c60f9b22 100644
--- a/src/Makefile_Evas.am
+++ b/src/Makefile_Evas.am
@@ -267,7 +267,6 @@ $(lib_evas_file_SOURCES)
noinst_HEADERS += \
lib/evas/include/evas_3d_utils.h \
-lib/evas/include/evas_3d_private.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 4f58f3f93f..eeb82b39bd 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
*/
@@ -5353,8 +5288,6 @@ EAPI const Eina_List *evas_font_path_global_list(void) EINA_WARN_UNUSED_R
*/
- // 3D stuff
-
/**
* @defgroup Evas_3D Evas 3D Extensions
*
@@ -5366,7 +5299,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
*
@@ -5448,7 +5381,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.
*/
@@ -5526,11 +5459,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;
/**
@@ -5538,6 +5480,7 @@ typedef Eo Evas_3D_Object;
*
* Scene object handle
*
+ * @since 1.10
* @ingroup Evas_3D_Scene
*/
typedef Eo Evas_3D_Scene;
@@ -5547,6 +5490,7 @@ typedef Eo Evas_3D_Scene;
*
* Node object handle
*
+ * @since 1.10
* @ingroup Evas_3D_Node
*/
typedef Eo Evas_3D_Node;
@@ -5556,6 +5500,7 @@ typedef Eo Evas_3D_Node;
*
* Camera object handle
*
+ * @since 1.10
* @ingroup Evas_3D_Camera
*/
typedef Eo Evas_3D_Camera;
@@ -5565,6 +5510,7 @@ typedef Eo Evas_3D_Camera;
*
* Light object handle
*
+ * @since 1.10
* @ingroup Evas_3D_Light
*/
typedef Eo Evas_3D_Light;
@@ -5574,6 +5520,7 @@ typedef Eo Evas_3D_Light;
*
* Mesh object handle
*
+ * @since 1.10
* @ingroup Evas_3D_Mesh
*/
typedef Eo Evas_3D_Mesh;
@@ -5583,6 +5530,7 @@ typedef Eo Evas_3D_Mesh;
*
* Texture object handle
*
+ * @since 1.10
* @ingroup Evas_3D_Texture
*/
typedef Eo Evas_3D_Texture;
@@ -5592,227 +5540,310 @@ typedef Eo Evas_3D_Texture;
*
* Material object handle
*
+ * @since 1.10
* @ingroup Evas_3D_Material
*/
typedef Eo Evas_3D_Material;
/**
+ * Type of 3D Object
+ *
+ * @since 1.10
+ * @ingroup Evas_3D_Type
+ */
+typedef enum _Evas_3D_Object_Type
+{
+ EVAS_3D_OBJECT_TYPE_INVALID = 0,
+ EVAS_3D_OBJECT_TYPE_SCENE,
+ EVAS_3D_OBJECT_TYPE_NODE,
+ EVAS_3D_OBJECT_TYPE_CAMERA,
+ EVAS_3D_OBJECT_TYPE_LIGHT,
+ EVAS_3D_OBJECT_TYPE_MODEL,
+ EVAS_3D_OBJECT_TYPE_MESH,
+ EVAS_3D_OBJECT_TYPE_TEXTURE,
+ EVAS_3D_OBJECT_TYPE_MATERIAL,
+} Evas_3D_Object_Type;
+
+/**
+ * State of the Evas 3D
+ *
+ * @since 1.10
+ * @ingroup Evas_3D_Type
+ */
+typedef enum _Evas_3D_State
+{
+ EVAS_3D_STATE_MAX = 16,
+
+ EVAS_3D_STATE_ANY = 0,
+
+ EVAS_3D_STATE_SCENE_ROOT_NODE = 1,
+ EVAS_3D_STATE_SCENE_CAMERA_NODE,
+ EVAS_3D_STATE_SCENE_BACKGROUND_COLOR,
+ EVAS_3D_STATE_SCENE_SIZE,
+
+ EVAS_3D_STATE_TEXTURE_DATA = 1,
+ EVAS_3D_STATE_TEXTURE_WRAP,
+ EVAS_3D_STATE_TEXTURE_FILTER,
+
+ EVAS_3D_STATE_MATERIAL_ID = 1,
+ EVAS_3D_STATE_MATERIAL_COLOR,
+ EVAS_3D_STATE_MATERIAL_TEXTURE,
+
+ EVAS_3D_STATE_MESH_VERTEX_COUNT = 1,
+ EVAS_3D_STATE_MESH_FRAME,
+ EVAS_3D_STATE_MESH_MATERIAL,
+ EVAS_3D_STATE_MESH_TRANSFORM,
+ EVAS_3D_STATE_MESH_VERTEX_DATA,
+ EVAS_3D_STATE_MESH_INDEX_DATA,
+ EVAS_3D_STATE_MESH_VERTEX_ASSEMBLY,
+ EVAS_3D_STATE_MESH_SHADE_MODE,
+
+ EVAS_3D_STATE_CAMERA_PROJECTION = 1,
+
+ EVAS_3D_STATE_LIGHT_AMBIENT = 1,
+ EVAS_3D_STATE_LIGHT_DIFFUSE,
+ EVAS_3D_STATE_LIGHT_SPECULAR,
+ EVAS_3D_STATE_LIGHT_SPOT_DIR,
+ EVAS_3D_STATE_LIGHT_SPOT_EXP,
+ EVAS_3D_STATE_LIGHT_SPOT_CUTOFF,
+ EVAS_3D_STATE_LIGHT_ATTENUATION,
+
+ EVAS_3D_STATE_NODE_TRANSFORM = 1,
+ EVAS_3D_STATE_NODE_MESH_GEOMETRY,
+ EVAS_3D_STATE_NODE_MESH_MATERIAL,
+ EVAS_3D_STATE_NODE_MESH_FRAME,
+ EVAS_3D_STATE_NODE_MESH_SHADE_MODE,
+ EVAS_3D_STATE_NODE_MESH_MATERIAL_ID,
+ EVAS_3D_STATE_NODE_LIGHT,
+ EVAS_3D_STATE_NODE_CAMERA,
+ EVAS_3D_STATE_NODE_PARENT,
+ EVAS_3D_STATE_NODE_MEMBER,
+} Evas_3D_State;
+
+/**
* Transform space
+ *
+ * @since 1.10
* @ingroup Evas_3D_Types
*/
typedef enum _Evas_3D_Space
{
- EVAS_3D_SPACE_LOCAL, /**< Local coordinate space */
- EVAS_3D_SPACE_PARENT, /**< Parent coordinate space */
- EVAS_3D_SPACE_WORLD, /**< World coordinate space */
+ EVAS_3D_SPACE_LOCAL = 0, /**< Local coordinate space */
+ EVAS_3D_SPACE_PARENT, /**< Parent coordinate space */
+ EVAS_3D_SPACE_WORLD, /**< World coordinate space */
} Evas_3D_Space;
/**
* Types of a node
+ *
+ * @since 1.10
* @ingroup Evas_3D_Types
*/
typedef enum _Evas_3D_Node_Type
{
- EVAS_3D_NODE_TYPE_NODE, /**< Node with no items */
- EVAS_3D_NODE_TYPE_CAMERA, /**< Node which can contain camera object */
- EVAS_3D_NODE_TYPE_LIGHT, /**< Node which can contain light object */
- EVAS_3D_NODE_TYPE_MESH, /**< Node which can contain mesh objects */
+ EVAS_3D_NODE_TYPE_NODE = 0, /**< Node with no items */
+ EVAS_3D_NODE_TYPE_CAMERA, /**< Node which can contain camera object */
+ EVAS_3D_NODE_TYPE_LIGHT, /**< Node which can contain light object */
+ EVAS_3D_NODE_TYPE_MESH, /**< Node which can contain mesh objects */
} Evas_3D_Node_Type;
/**
* Vertex attribute IDs
+ *
+ * @since 1.10
* @ingroup Evas_3D_Types
*/
typedef enum _Evas_3D_Vertex_Attrib
{
- EVAS_3D_VERTEX_POSITION, /**< Vertex position */
- EVAS_3D_VERTEX_NORMAL, /**< Vertex normal */
- EVAS_3D_VERTEX_TANGENT, /**< Vertex tangent (for normal mapping) */
- EVAS_3D_VERTEX_COLOR, /**< Vertex color */
- EVAS_3D_VERTEX_TEXCOORD, /**< Vertex texture coordinate */
+ EVAS_3D_VERTEX_POSITION = 0, /**< Vertex position */
+ EVAS_3D_VERTEX_NORMAL, /**< Vertex normal */
+ EVAS_3D_VERTEX_TANGENT, /**< Vertex tangent (for normal mapping) */
+ EVAS_3D_VERTEX_COLOR, /**< Vertex color */
+ EVAS_3D_VERTEX_TEXCOORD, /**< Vertex texture coordinate */
} Evas_3D_Vertex_Attrib;
/**
* Index formats
+ *
+ * @since 1.10
* @ingroup Evas_3D_Types
*/
typedef enum _Evas_3D_Index_Format
{
- EVAS_3D_INDEX_FORMAT_NONE, /**< Indexing is not used */
- EVAS_3D_INDEX_FORMAT_UNSIGNED_BYTE, /**< Index is of type unsigned byte */
- EVAS_3D_INDEX_FORMAT_UNSIGNED_SHORT, /**< Index is of type unsigned short */
+ EVAS_3D_INDEX_FORMAT_NONE = 0, /**< Indexing is not used */
+ EVAS_3D_INDEX_FORMAT_UNSIGNED_BYTE, /**< Index is of type unsigned byte */
+ EVAS_3D_INDEX_FORMAT_UNSIGNED_SHORT /**< Index is of type unsigned short */
} Evas_3D_Index_Format;
/**
* Vertex assembly modes
- * @ingroup Evas_3D_Types
*
* Vertex assembly represents how the vertices are organized into geometric
* primitives.
+ *
+ * @since 1.10
+ * @ingroup Evas_3D_Types
*/
typedef enum _Evas_3D_Vertex_Assembly
{
- EVAS_3D_VERTEX_ASSEMBLY_POINTS, /**< A vertex is rendered as a point */
- EVAS_3D_VERTEX_ASSEMBLY_LINES, /**< Two vertices are organized as a line */
- EVAS_3D_VERTEX_ASSEMBLY_LINE_STRIP, /**< Vertices are organized as a connected line path */
- EVAS_3D_VERTEX_ASSEMBLY_LINE_LOOP, /**< Vertices are organized as a closed line path */
- EVAS_3D_VERTEX_ASSEMBLY_TRIANGLES, /**< Three vertices are organized as a triangle */
- EVAS_3D_VERTEX_ASSEMBLY_TRIANGLE_STRIP, /**< Vertices are organized as connected triangles */
- EVAS_3D_VERTEX_ASSEMBLY_TRIANGLE_FAN, /**< Vertices are organized as a triangle fan */
+ /**< A vertex is rendered as a point */
+ EVAS_3D_VERTEX_ASSEMBLY_POINTS = 0,
+ /**< Two vertices are organized as a line */
+ EVAS_3D_VERTEX_ASSEMBLY_LINES,
+ /**< Vertices are organized as a connected line path */
+ EVAS_3D_VERTEX_ASSEMBLY_LINE_STRIP,
+ /**< Vertices are organized as a closed line path */
+ EVAS_3D_VERTEX_ASSEMBLY_LINE_LOOP,
+ /**< Three vertices are organized as a triangle */
+ EVAS_3D_VERTEX_ASSEMBLY_TRIANGLES,
+ /**< Vertices are organized as connected triangles */
+ EVAS_3D_VERTEX_ASSEMBLY_TRIANGLE_STRIP,
+ /**< Vertices are organized as a triangle fan */
+ EVAS_3D_VERTEX_ASSEMBLY_TRIANGLE_FAN,
} Evas_3D_Vertex_Assembly;
/**
* Color formats of pixel data
+ *
+ * @since 1.10
* @ingroup Evas_3D_Types
*/
typedef enum _Evas_3D_Color_Format
{
- EVAS_3D_COLOR_FORMAT_RGBA, /**< Color contains full components, red, green, blue and alpha */
- EVAS_3D_COLOR_FORMAT_RGB, /**< Color contains only red, green and blue components */
- EVAS_3D_COLOR_FORMAT_ALPHA, /**< Color contains only alpha component */
+ /**< Color contains full components, red, green, blue and alpha */
+ EVAS_3D_COLOR_FORMAT_RGBA = 0,
+ /**< Color contains only red, green and blue components */
+ EVAS_3D_COLOR_FORMAT_RGB,
+ /**< Color contains only alpha component */
+ EVAS_3D_COLOR_FORMAT_ALPHA
} Evas_3D_Color_Format;
/**
* Pixel formats
+ *
+ * @since 1.10
* @ingroup Evas_3D_Types
*/
typedef enum _Evas_3D_Pixel_Format
{
- EVAS_3D_PIXEL_FORMAT_8, /**< 8-bit pixel with single component */
- EVAS_3D_PIXEL_FORMAT_565, /**< 16-bit pixel with three components (5-6-5 bit) */
- EVAS_3D_PIXEL_FORMAT_888, /**< 24-bit pixel with three 8-bit components */
- EVAS_3D_PIXEL_FORMAT_8888, /**< 32-bit pixel with four 8-bit components */
- EVAS_3D_PIXEL_FORMAT_4444, /**< 16-bit pixel with four 4-bit components */
- EVAS_3D_PIXEL_FORMAT_5551, /**< 16-bit pixel with four components (5-5-5-1 bit) */
+ /**< 8-bit pixel with single component */
+ EVAS_3D_PIXEL_FORMAT_8 = 0,
+ /**< 16-bit pixel with three components (5-6-5 bit) */
+ EVAS_3D_PIXEL_FORMAT_565,
+ /**< 24-bit pixel with three 8-bit components */
+ EVAS_3D_PIXEL_FORMAT_888,
+ /**< 32-bit pixel with four 8-bit components */
+ EVAS_3D_PIXEL_FORMAT_8888,
+ /**< 16-bit pixel with four 4-bit components */
+ EVAS_3D_PIXEL_FORMAT_4444,
+ /**< 16-bit pixel with four components (5-5-5-1 bit) */
+ EVAS_3D_PIXEL_FORMAT_5551
} Evas_3D_Pixel_Format;
/**
* Wrap modes
+ *
+ * @since 1.10
* @ingroup Evas_3D_Types
*/
typedef enum _Evas_3D_Wrap_Mode
{
- EVAS_3D_WRAP_MODE_CLAMP, /**< Values will be clamped to be in range [min, max] */
- EVAS_3D_WRAP_MODE_REPEAT, /**< Values will be repeated */
- EVAS_3D_WRAP_MODE_REFLECT, /**< Values will be repeated in a reflected manner */
+ /**< Values will be clamped to be in range [min, max] */
+ EVAS_3D_WRAP_MODE_CLAMP = 0,
+ /**< Values will be repeated */
+ EVAS_3D_WRAP_MODE_REPEAT,
+ /**< Values will be repeated in a reflected manner */
+ EVAS_3D_WRAP_MODE_REFLECT
} Evas_3D_Wrap_Mode;
/**
* Texture filters
+ *
+ * @since 1.10
* @ingroup Evas_3D_Types
*/
typedef enum _Evas_3D_Texture_Filter
{
- EVAS_3D_TEXTURE_FILTER_NEAREST, /**< Samples nearest texel */
- EVAS_3D_TEXTURE_FILTER_LINEAR, /**< Lineary interpolate nearby texels */
- EVAS_3D_TEXTURE_FILTER_NEAREST_MIPMAP_NEAREST, /**< Nearest sampling mipmap */
- EVAS_3D_TEXTURE_FILTER_LINEAR_MIPMAP_NEAREST, /**< Nearest sampling mipmap and interpolate */
- EVAS_3D_TEXTURE_FILTER_NEAREST_MIPMAP_LINEAR, /**< Linear sampling in nearest mipmap */
- EVAS_3D_TEXTURE_FILTER_LINEAR_MIPMAP_LINEAR, /**< Linear sampling in mipmap and interpolate */
+ /**< Samples nearest texel */
+ EVAS_3D_TEXTURE_FILTER_NEAREST = 0,
+ /**< Lineary interpolate nearby texels */
+ EVAS_3D_TEXTURE_FILTER_LINEAR,
+ /**< Nearest sampling mipmap */
+ EVAS_3D_TEXTURE_FILTER_NEAREST_MIPMAP_NEAREST,
+ /**< Nearest sampling mipmap and interpolate */
+ EVAS_3D_TEXTURE_FILTER_LINEAR_MIPMAP_NEAREST,
+ /**< Linear sampling in nearest mipmap */
+ EVAS_3D_TEXTURE_FILTER_NEAREST_MIPMAP_LINEAR,
+ /**< Linear sampling in mipmap and interpolate */
+ EVAS_3D_TEXTURE_FILTER_LINEAR_MIPMAP_LINEAR
} Evas_3D_Texture_Filter;
/**
* Shade modes
+ *
+ * @since 1.10
* @ingroup Evas_3D_Types
*/
typedef enum _Evas_3D_Shade_Mode
{
- EVAS_3D_SHADE_MODE_VERTEX_COLOR, /**< Shaded using vertex color attribute */
- EVAS_3D_SHADE_MODE_DIFFUSE, /**< Shaded using material diffuse term */
- EVAS_3D_SHADE_MODE_FLAT, /**< Per-vertex flat lighting */
- EVAS_3D_SHADE_MODE_PHONG, /**< Per-pixel phong shading */
- EVAS_3D_SHADE_MODE_NORMAL_MAP, /**< Per-pixel normal map shading */
+ /**< Shaded using vertex color attribute */
+ EVAS_3D_SHADE_MODE_VERTEX_COLOR = 0,
+ /**< Shaded using material diffuse term */
+ EVAS_3D_SHADE_MODE_DIFFUSE,
+ /**< Per-vertex flat lighting */
+ EVAS_3D_SHADE_MODE_FLAT,
+ /**< Per-pixel phong shading */
+ EVAS_3D_SHADE_MODE_PHONG,
+ /**< Per-pixel normal map shading */
+ EVAS_3D_SHADE_MODE_NORMAL_MAP
} Evas_3D_Shade_Mode;
/**
* Material attributes
+ *
+ * @since 1.10
* @ingroup Evas_3D_Types
*/
typedef enum _Evas_3D_Material_Attrib
{
- EVAS_3D_MATERIAL_AMBIENT, /**< Ambient term */
- EVAS_3D_MATERIAL_DIFFUSE, /**< Diffuse term */
- EVAS_3D_MATERIAL_SPECULAR, /**< Specular term */
- EVAS_3D_MATERIAL_EMISSION, /**< Emission term */
- EVAS_3D_MATERIAL_NORMAL, /**< Normal map term */
+ EVAS_3D_MATERIAL_AMBIENT = 0, /**< Ambient term */
+ EVAS_3D_MATERIAL_DIFFUSE, /**< Diffuse term */
+ EVAS_3D_MATERIAL_SPECULAR, /**< Specular term */
+ EVAS_3D_MATERIAL_EMISSION, /**< Emission term */
+ EVAS_3D_MATERIAL_NORMAL, /**< Normal map term */
} Evas_3D_Material_Attrib;
/**
* Mesh file type
+ *
+ * @since 1.10
* @ingroup Evas_3D_Types
*/
typedef enum _Evas_3D_Mesh_File_Type
{
- EVAS_3D_MESH_FILE_TYPE_MD2, /**< Quake's MD2 mesh file format */
+ EVAS_3D_MESH_FILE_TYPE_MD2 = 0, /**< Quake's MD2 mesh file format */
} Evas_3D_Mesh_File_Type;
-typedef enum _Evas_3D_Pick_Type
-{
- EVAS_3D_PICK_NODE,
- EVAS_3D_PICK_MESH,
-} Evas_3D_Pick_Type;
-
/**
- * Set the scene on an image object.
- *
- * @param obj Image object.
- * @param scene Scene object used as a content of the given image object.
- *
- * An image object can get its content from various sources like memory buffers,
- * image files and other evas object. A scene also can be a source for an image
- * object to display the rendered result onto evas canvas.
+ * Create a new scene object on the given Evas @p e canvas.
*
- * Any existing content (data, file or proxy source) will be removed after this
- * call. Setting @p src to @c NULL detach the 3D scene from the image object.
- *
- * @ingroup Evas_3D_Scene
- */
-EAPI void evas_object_image_3d_scene_set(Evas_Object *obj, Evas_3D_Scene *scene) EINA_ARG_NONNULL(1);
-
-/**
- * Get the current scene of an image object.
+ * @param e The given canvas.
+ * @return A new scene object.
*
- * @param obj Image object.
- * @return Scene object handle (if any), or @c NULL if there's no scene attached.
- *
- * @ingroup Evas_3D_Scene
- */
-EAPI Evas_3D_Scene *evas_object_image_3d_scene_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
-
-/**
- * Create a new scene on the given Evas @p e canvas.
- *
- * @param e The given canvas.
- * @return The created scene handle.
+ * @since 1.10
*
* @ingroup Evas_3D_Scene
*/
EAPI Evas_3D_Scene *evas_3d_scene_add(Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
/**
- * Delete a scene from its belonging Evas canvas.
- *
- * @param scene The given scene to be deleted.
- *
- * @ingroup Evas_3D_Scene
- */
-EAPI void evas_3d_scene_del(Evas_3D_Scene *scene) EINA_ARG_NONNULL(1);
-
-/**
- * Get the Evas canvas where the given scene belongs to.
- *
- * @param scene The given scene.
- * @return The Evas canvas.
- *
- * @ingroup Evas_3D_Scene
- */
-//EAPI Evas *evas_3d_scene_evas_get(const Evas_3D_Scene *scene) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
-
-/**
* Set the root node of a scene.
*
- * @param scene The given scene.
- * @param node A node which will be used as a root node for the scene.
+ * @param scene A scene.
+ * @param node A node which will be used as a root node for the scene.
+ *
+ * @see evas_3d_scene_root_node_set()
+ * @since 1.10
*
* @ingroup Evas_3D_Scene
*/
@@ -5821,8 +5852,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
*/
@@ -5831,8 +5865,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
*/
@@ -5841,8 +5878,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
*/
@@ -5851,13 +5891,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);
@@ -5865,10 +5908,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);
@@ -5876,11 +5922,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
@@ -5888,6 +5934,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);
@@ -5895,11 +5944,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
*/
@@ -5908,17 +5960,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
*/
@@ -5927,9 +5981,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
*/
@@ -5942,6 +5999,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);
@@ -5950,36 +6009,30 @@ EAPI void evas_3d_node_del(Evas_3D_Node *node) EINA_ARG_NONNULL(1)
* Get the type of the given node.
*
* @param node The given node.
- * @return The type of the given node.
+ * @return The type of the given node.
*
* @see evas_3d_node_add()
*
- * @ingroup Evas_3D_Node
- */
-EAPI Evas_3D_Node_Type evas_3d_node_type_get(const Evas_3D_Node *node) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
-
-/**
- * Get the Evas canvas where the given node belongs to.
- *
- * @param node The given node.
- * @return The Evas canvas.
- *
- * @see evas_3d_node_add()
+ * @since 1.10
*
* @ingroup Evas_3D_Node
*/
-//EAPI Evas *evas_3d_node_evas_get(const Evas_3D_Node *node) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
+EAPI Evas_3D_Node_Type evas_3d_node_type_get(const Evas_3D_Node *node) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
/**
* Add a member node to the given node.
*
- * @param node The given node which will be the parent.
- * @param member Node object to be added.
+ * @param node The given node which will be the parent.
+ * @param member Node object to be added.
*
* Nodes can be constructed into N-ary tree structure like other ordinary scene
* graph. Basically a node inherit transforms from its parent.
*
* @see evas_3d_node_parent_get()
+ * @see evas_3d_node_member_del()
+ * @see evas_3d_node_member_list_get()
+ *
+ * @since 1.10
*
* @ingroup Evas_3D_Node
*/
@@ -5988,8 +6041,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()
*
@@ -6000,11 +6053,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);
@@ -6012,11 +6067,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);
@@ -6037,10 +6094,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.
@@ -6048,6 +6105,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
*/
@@ -6056,11 +6116,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.
@@ -6069,35 +6129,25 @@ EAPI void evas_3d_node_position_set(Evas_3D_Node *node, Evas_Real
*
* @see evas_3d_node_orientation_inherit_set()
*
- * @ingroup Evas_3D_Node_Transform
- */
-EAPI void evas_3d_node_orientation_set(Evas_3D_Node *node, Evas_Real x, Evas_Real y, Evas_Real z, Evas_Real w) EINA_ARG_NONNULL(1);
-
-/**
- * Set the orientation of the given node using euler angle.
- *
- * @param node The given node.
- * @param x Rotation angle about X-axis.
- * @param y Rotation angle about Y-axis.
- * @param z Rotation angle about Z-axis.
- *
- * @see evas_3d_node_orientation_set()
+ * @since 1.10
*
* @ingroup Evas_3D_Node_Transform
*/
-EAPI void evas_3d_node_orientation_euler_set(Evas_3D_Node *node, Evas_Real x, Evas_Real y, Evas_Real z) EINA_ARG_NONNULL(1);
+EAPI void evas_3d_node_orientation_set(Evas_3D_Node *node, Evas_Real x, Evas_Real y, Evas_Real z, Evas_Real w) EINA_ARG_NONNULL(1);
/**
* Set the orientation of the given node using axis-angle.
*
- * @param node The given node.
- * @param angle Rotation angle.
- * @param x X term of the rotation axis.
- * @param y Y term of the rotation axis.
- * @param z Z term of the rotation axis.
+ * @param node The given node.
+ * @param angle Rotation angle.
+ * @param x X term of the rotation axis.
+ * @param y Y term of the rotation axis.
+ * @param z Z term of the rotation axis.
*
* @see evas_3d_node_orientation_set()
*
+ * @since 1.10
+ *
* @ingroup Evas_3D_Node_Transform
*/
EAPI void evas_3d_node_orientation_angle_axis_set(Evas_3D_Node *node, Evas_Real angle, Evas_Real x, Evas_Real y, Evas_Real z) EINA_ARG_NONNULL(1);
@@ -6105,10 +6155,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
@@ -6117,6 +6167,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
*/
@@ -6125,13 +6178,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);
@@ -6139,81 +6195,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
*/
@@ -6222,10 +6308,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
*/
@@ -6234,15 +6321,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
@@ -6250,6 +6337,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);
@@ -6257,14 +6346,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);
@@ -6272,10 +6363,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
*/
@@ -6284,13 +6376,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
*/
@@ -6299,10 +6392,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
*/
@@ -6311,13 +6405,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
*/
@@ -6326,13 +6421,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
*/
@@ -6341,14 +6437,16 @@ EAPI void evas_3d_node_mesh_del(Evas_3D_Node *node, Evas_3D_Mesh *
/**
* Get the list of meshes of the given node.
*
- * @param node The given node.
- * @return The list of meshes if any, or @c NULL if there're none.
+ * @param node The given node.
+ * @return The list of meshes if any, or @c NULL if there're none.
+ *
+ * If there're no meshes in the given node, @c NULL will be returned.
*
- * If the node is not of type EVAS_3D_NODE_TYPE_MESH, error message will be
- * generated and @c NULL will be returned. If there're no meshes in the given
- * node, @c NULL will be returned.
+ * @warning If the node is not of type EVAS_3D_NODE_TYPE_MESH or the given mesh
+ * does not belong to the given node, @c NULL will be returned.
*
* @see evas_3d_node_mesh_add()
+ * @since 1.10
*
* @ingroup Evas_3D_Node
*/
@@ -6357,9 +6455,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.
@@ -6367,6 +6465,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
*/
@@ -6375,14 +6474,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
*/
@@ -6391,8 +6491,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
*/
@@ -6401,31 +6503,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.
*
@@ -6433,6 +6525,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);
@@ -6440,11 +6534,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);
@@ -6452,13 +6549,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
*/
@@ -6467,15 +6565,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
*/
@@ -6484,15 +6583,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
*/
@@ -6501,8 +6601,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
*/
@@ -6511,31 +6613,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
@@ -6544,6 +6636,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
*/
@@ -6552,10 +6645,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
*/
@@ -6564,14 +6658,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);
@@ -6579,13 +6675,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
*/
@@ -6594,14 +6691,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);
@@ -6609,13 +6708,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
*/
@@ -6624,13 +6724,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
*/
@@ -6639,13 +6740,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
*/
@@ -6654,8 +6756,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
@@ -6664,7 +6766,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
*/
@@ -6673,10 +6776,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
*/
@@ -6685,14 +6789,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);
@@ -6700,10 +6806,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
*/
@@ -6712,10 +6819,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
@@ -6726,6 +6833,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
*/
@@ -6734,12 +6842,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
*/
@@ -6748,12 +6857,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
*/
@@ -6762,10 +6873,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
*/
@@ -6774,8 +6886,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
*/
@@ -6784,34 +6898,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);
@@ -6819,10 +6924,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
*/
@@ -6831,23 +6937,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
@@ -6855,6 +6962,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);
@@ -6862,11 +6971,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);
@@ -6874,10 +6985,12 @@ EAPI int evas_3d_mesh_vertex_count_get(const Evas_3D_Mesh *mesh)
/**
* Add a key frame to the given mesh.
*
- * @param mesh The given mesh.
- * @param frame The number of the key frame to be added.
+ * @param mesh The given mesh.
+ * @param frame The number of the key frame to be added.
+ *
+ * If specified frame is already exist, nothing will be happened.
*
- * If specified frame is already exist, error message will be generated.
+ * @since 1.10
*
* @ingroup Evas_3D_Mesh
*/
@@ -6886,10 +6999,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
*/
@@ -6898,13 +7012,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);
@@ -6912,11 +7029,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
*/
@@ -6925,11 +7043,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
@@ -6938,28 +7056,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()
@@ -6971,10 +7093,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
@@ -6983,6 +7105,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
*/
@@ -6991,11 +7114,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
*/
@@ -7004,16 +7128,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
*/
@@ -7022,10 +7147,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().
@@ -7034,6 +7159,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
*/
@@ -7042,15 +7168,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
*/
@@ -7059,8 +7186,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
@@ -7069,6 +7196,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
*/
@@ -7077,13 +7205,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
*/
@@ -7092,8 +7221,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
@@ -7101,6 +7230,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
*/
@@ -7109,9 +7239,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
*/
@@ -7120,14 +7251,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);
@@ -7135,10 +7268,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
*/
@@ -7147,8 +7281,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
*/
@@ -7166,28 +7300,17 @@ EAPI Evas_3D_Texture *evas_3d_texture_add(Evas *e) EINA_WARN_UNUSED_RESULT EIN
EAPI void evas_3d_texture_del(Evas_3D_Texture *texture) EINA_ARG_NONNULL(1);
/**
- * Get the Evas canvas where the given texture belongs to.
- *
- * @param texture The given texture.
- * @return The Evas canvas.
- *
- * @see evas_3d_texture_add()
- *
- * @ingroup Evas_3D_Texture
- */
-//EAPI Evas *evas_3d_texture_evas_get(const Evas_3D_Texture *texture) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
-
-/**
* Set the data of the given texture.
*
- * @param texure The given texture
- * @param color_format Color format of the texture.
- * @param pixel_format Pixel format of the data.
- * @param w Width of the data.
- * @param h Height of the data.
- * @param data Pointer to the data.
+ * @param texure The given texture
+ * @param color_format Color format of the texture.
+ * @param pixel_format Pixel format of the data.
+ * @param w Width of the data.
+ * @param h Height of the data.
+ * @param data Pointer to the data.
*
* @see evas_3d_texture_file_set()
+ * @since 1.10
*
* @ingroup Evas_3D_Texture
*/
@@ -7196,11 +7319,16 @@ EAPI void evas_3d_texture_data_set(Evas_3D_Texture *texture, Evas_
/**
* Set the data of the given texture from file.
*
- * @param texture The given texture.
- * @param file Path to the image file.
- * @param key Key in the image file.
+ * @param texture The given texture.
+ * @param file The image file path.
+ * @param key The image key in @p file (if its an Eet one), or @c NULL,
+ * otherwise.
+ *
+ * If the file supports multiple data stored in it (as Eet files do),
+ * you can specify the key to be used as the index of the image in
+ * this file.
*
- * Only PNG format is supported.
+ * @since 1.10
*
* @ingroup Evas_3D_Texture
*/
@@ -7209,8 +7337,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.
@@ -7224,8 +7352,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.
@@ -7233,6 +7361,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
*/
@@ -7241,10 +7370,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
*/
@@ -7253,7 +7383,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.
@@ -7261,6 +7391,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
*/
@@ -7269,9 +7400,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.
@@ -7279,6 +7410,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
*/
@@ -7287,15 +7419,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);
@@ -7303,11 +7437,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
*/
@@ -7316,12 +7451,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);
@@ -7329,11 +7466,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
*/
@@ -7342,9 +7480,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
*/
@@ -7356,29 +7496,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
@@ -7386,6 +7516,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);
@@ -7393,11 +7525,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
*/
@@ -7406,12 +7539,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
@@ -7426,6 +7559,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);
@@ -7433,14 +7568,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
*/
@@ -7449,8 +7585,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.
@@ -7458,6 +7594,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
*/
@@ -7466,10 +7603,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
*/
@@ -7478,13 +7616,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
*/
@@ -7493,11 +7632,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/Evas_Legacy.h b/src/lib/evas/Evas_Legacy.h
index 6957ab9743..80239cb602 100644
--- a/src/lib/evas/Evas_Legacy.h
+++ b/src/lib/evas/Evas_Legacy.h
@@ -5172,6 +5172,37 @@ EAPI double evas_object_image_animated_frame_duration_get
* @since 1.1
*/
EAPI void evas_object_image_animated_frame_set(Evas_Object *obj, int frame_num);
+
+/**
+ * Set the scene on an image object.
+ *
+ * @param obj Image object.
+ * @param scene Scene object used as a content of the given image object.
+ *
+ * An image object can get its content from various sources like memory buffers,
+ * image files and other evas objects. 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 scene to @c NULL detach the 3D scene from the image object.
+ *
+ * @see evas_object_image_3d_scene_get()
+ * @since 1.10
+ */
+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.
+ *
+ * @see evas_object_image_3d_scene_set()
+ * @since 1.10
+ */
+EAPI Evas_3D_Scene *evas_object_image_3d_scene_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
+
/**
* @}
*/
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 64e83b23df..a17b23a18a 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