*/
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
*/
*/
- // 3D stuff
-
/**
* @defgroup Evas_3D Evas 3D Extensions
*
/**
* @page evas_3d_main Evas 3D
*
- * @date 2014 (created)
+ * @since 1.10
*
* @section toc Table of Contents
*
* @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.
*/
* 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;
/**
*
* Scene object handle
*
+ * @since 1.10
* @ingroup Evas_3D_Scene
*/
typedef Eo Evas_3D_Scene;
*
* Node object handle
*
+ * @since 1.10
* @ingroup Evas_3D_Node
*/
typedef Eo Evas_3D_Node;
*
* Camera object handle
*
+ * @since 1.10
* @ingroup Evas_3D_Camera
*/
typedef Eo Evas_3D_Camera;
*
* Light object handle
*
+ * @since 1.10
* @ingroup Evas_3D_Light
*/
typedef Eo Evas_3D_Light;
*
* Mesh object handle
*
+ * @since 1.10
* @ingroup Evas_3D_Mesh
*/
typedef Eo Evas_3D_Mesh;
*
* Texture object handle
*
+ * @since 1.10
* @ingroup Evas_3D_Texture
*/
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
*/
/**
* 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
*/
/**
* 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
*/
/**
* 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
*/
/**
* 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);
/**
* 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);
/**
* 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
*
* 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);
/**
* 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
*/
/**
* 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
*/
/**
* 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
*/
*
* @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);
* 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
*/
/**
* 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()
*
/**
* 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);
/**
* 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);
/**
* 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.
* 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
*/
/**
* 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.
*
* @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);
/**
* 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
* 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
*/
/**
* 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);
/**
* 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
*/
/**
* 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
*/
/**
* 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
*
* @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);
/**
* 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);
/**
* 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
*/
/**
* 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
*/
/**
* 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
*/
/**
* 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
*/
/**
* 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
*/
/**
* 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
*/
/**
* 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.
* Default mesh frame is 0.
*
* @see evas_3d_node_mesh_add()
+ * @since 1.10
*
* @ingroup Evas_3D_Node
*/
/**
* 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
*/
/**
* 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
*/
/**
* 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.
*
* @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);
/**
* 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);
/**
* 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
*/
/**
* 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
*/
/**
* 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
*/
/**
* 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
*/
/**
* 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
* By default, directional is not enabled.
*
* @see evas_3d_node_look_at_set()
+ * @since 1.10
*
* @ingroup Evas_3D_Light
*/
/**
* 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
*/
/**
* 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);
/**
* 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
*/
/**
* 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);
/**
* 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
*/
/**
* 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
*/
/**
* 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
*/
/**
* 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
*
* 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
*/
/**
* 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
*/
/**
* 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);
/**
* 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
*/
/**
* 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
* 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
*/
/**
* 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
*/
/**
* 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
*/
/**
* 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
*/
/**
* 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
*/
/**
* 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);
/**
* 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
*/
/**
* 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
*
* 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);
/**
* 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);
/**
* 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
*/
/**
* 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
*/
/**
* 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);
/**
* 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
*/
/**
* 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
* 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()
/**
* 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
* time calling this function.
*
* @see evas_3d_mesh_frame_vertex_data_unmap()
+ * @since 1.10
*
* @ingroup Evas_3D_Mesh
*/
/**
* 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
*/
/**
* 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
*/
/**
* 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().
* @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
*/
/**
* 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
*/
/**
* 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
* evas_3d_mesh_index_data_map() function.
*
* @see evas_3d_mesh_index_data_map()
+ * @since 1.10
*
* @ingroup Evas_3D_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
*/
/**
* 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
* this function.
*
* @see evas_3d_mesh_index_data_unmap()
+ * @since 1.10
*
* @ingroup Evas_3D_Mesh
*/
/**
* 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
*/
/**
* 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);
/**
* 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
*/
/**
* 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
*/
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
*/
/**
* 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
*/
/**
* 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.
/**
* 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.
* By default, source object is visible.
*
* @see evas_3d_texture_source_set()
+ * @since 1.10
*
* @ingroup Evas_3D_Texture
*/
/**
* 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
*/
/**
* 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.
* @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
*/
/**
* 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.
* @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
*/
/**
* 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);
/**
* 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
*/
/**
* 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);
/**
* 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
*/
/**
* 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
*/
* @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
*
* 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);
/**
* 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
*/
/**
* 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
* 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);
/**
* 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
*/
/**
* 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.
* Default shininess value is 150.0.
*
* @see evas_3d_material_enable_set()
+ * @since 1.10
*
* @ingroup Evas_3D_Material
*/
/**
* 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
*/
/**
* 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
*/
/**
* 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
*/