#ifndef _EVAS_H # error You shall not include this header directly #endif #ifndef _EFL_CANVAS_VG_NODE_EO_CLASS_TYPE #define _EFL_CANVAS_VG_NODE_EO_CLASS_TYPE typedef Eo Efl_Canvas_Vg_Node; #endif #ifndef _EFL_CANVAS_ANIMATION_EO_CLASS_TYPE #define _EFL_CANVAS_ANIMATION_EO_CLASS_TYPE typedef Eo Efl_Canvas_Animation; #endif #ifndef _EFL_CANVAS_ANIMATION_ALPHA_EO_CLASS_TYPE #define _EFL_CANVAS_ANIMATION_ALPHA_EO_CLASS_TYPE typedef Eo Efl_Canvas_Animation_Alpha; #endif #ifndef _EFL_CANVAS_ANIMATION_ROTATE_EO_CLASS_TYPE #define _EFL_CANVAS_ANIMATION_ROTATE_EO_CLASS_TYPE typedef Eo Efl_Canvas_Animation_Rotate; #endif #ifndef _EFL_CANVAS_ANIMATION_SCALE_EO_CLASS_TYPE #define _EFL_CANVAS_ANIMATION_SCALE_EO_CLASS_TYPE typedef Eo Efl_Canvas_Animation_Scale; #endif #ifndef _EFL_CANVAS_ANIMATION_TRANSLATE_EO_CLASS_TYPE #define _EFL_CANVAS_ANIMATION_TRANSLATE_EO_CLASS_TYPE typedef Eo Efl_Canvas_Animation_Translate; #endif #ifndef _EFL_CANVAS_ANIMATION_GROUP_EO_CLASS_TYPE #define _EFL_CANVAS_ANIMATION_GROUP_EO_CLASS_TYPE typedef Eo Efl_Canvas_Animation_Group; #endif #ifndef _EFL_CANVAS_ANIMATION_GROUP_PARALLEL_EO_CLASS_TYPE #define _EFL_CANVAS_ANIMATION_GROUP_PARALLEL_EO_CLASS_TYPE typedef Eo Efl_Canvas_Animation_Group_Parallel; #endif #ifndef _EFL_CANVAS_ANIMATION_GROUP_SEQUENTIAL_EO_CLASS_TYPE #define _EFL_CANVAS_ANIMATION_GROUP_SEQUENTIAL_EO_CLASS_TYPE typedef Eo Efl_Canvas_Animation_Group_Sequential; #endif #ifndef _EFL_CANVAS_ANIMATION_PLAYER_EO_CLASS_TYPE #define _EFL_CANVAS_ANIMATION_PLAYER_EO_CLASS_TYPE typedef Eo Efl_Canvas_Animation_Player; #endif #ifndef _EFL_CANVAS_ANIMATION_PLAYER_ALPHA_EO_CLASS_TYPE #define _EFL_CANVAS_ANIMATION_PLAYER_ALPHA_EO_CLASS_TYPE typedef Eo Efl_Canvas_Animation_Player_Alpha; #endif #ifndef _EFL_CANVAS_ANIMATION_PLAYER_ROTATE_EO_CLASS_TYPE #define _EFL_CANVAS_ANIMATION_PLAYER_ROTATE_EO_CLASS_TYPE typedef Eo Efl_Canvas_Animation_Player_Rotate; #endif #ifndef _EFL_CANVAS_ANIMATION_PLAYER_SCALE_EO_CLASS_TYPE #define _EFL_CANVAS_ANIMATION_PLAYER_SCALE_EO_CLASS_TYPE typedef Eo Efl_Canvas_Animation_Player_Scale; #endif #ifndef _EFL_CANVAS_ANIMATION_PLAYER_TRANSLATE_EO_CLASS_TYPE #define _EFL_CANVAS_ANIMATION_PLAYER_TRANSLATE_EO_CLASS_TYPE typedef Eo Efl_Canvas_Animation_Player_Translate; #endif #ifndef _EFL_CANVAS_ANIMATION_PLAYER_GROUP_EO_CLASS_TYPE #define _EFL_CANVAS_ANIMATION_PLAYER_GROUP_EO_CLASS_TYPE typedef Eo Efl_Canvas_Animation_Player_Group; #endif #ifndef _EFL_CANVAS_ANIMATION_GROUP_PARALLEL_EO_CLASS_TYPE #define _EFL_CANVAS_ANIMATION_GROUP_PARALLEL_EO_CLASS_TYPE typedef Eo Efl_Canvas_Animation_Group_Parallel; #endif #ifndef _EFL_CANVAS_ANIMATION_GROUP_SEQUENTIAL_EO_CLASS_TYPE #define _EFL_CANVAS_ANIMATION_GROUP_SEQUENTIAL_EO_CLASS_TYPE typedef Eo Efl_Canvas_Animation_Group_Sequential; #endif struct _Efl_Canvas_Animation_Player_Event_Running { double progress; }; struct _Efl_Canvas_Object_Animation_Event { const Efl_Event_Description *event_desc; }; /** * @ingroup Evas_Object_Rectangle * * @{ */ #include "canvas/efl_canvas_rectangle.eo.h" /** * @} */ /** * @ingroup Efl_Canvas_Textblock * * @{ */ #include "canvas/efl_text_cursor.eo.h" #include "canvas/efl_text_attribute_factory.eo.h" #include "canvas/efl_canvas_textblock.eo.h" #include "canvas/efl_canvas_textblock_factory.eo.h" /** * @} */ /** * @ingroup Evas_Object_Polygon * * @{ */ #include "canvas/efl_canvas_polygon.eo.h" /** * @} */ /** * @ingroup Evas_Smart_Object_Group * * @{ */ #include "canvas/efl_canvas_group.eo.h" /** * @} */ /** * @} */ /* Input events */ #include "canvas/efl_input_types.eot.h" #include "canvas/efl_input_device.eo.h" #include "canvas/efl_canvas_pointer.eo.h" #include "canvas/efl_canvas_scene.eo.h" #include "canvas/efl_input_state.eo.h" #include "canvas/efl_input_event.eo.h" #include "canvas/efl_input_pointer.eo.h" #include "canvas/efl_input_key.eo.h" #include "canvas/efl_input_hold.eo.h" #include "canvas/efl_input_interface.eo.h" #include "canvas/efl_input_focus.eo.h" #include "canvas/efl_input_clickable.eo.h" #include "canvas/efl_canvas_animation_types.eot.h" #include "gesture/efl_canvas_gesture_types.eot.h" #include "gesture/efl_canvas_gesture_touch.eo.h" #include "gesture/efl_canvas_gesture.eo.h" #include "gesture/efl_canvas_gesture_tap.eo.h" #include "gesture/efl_canvas_gesture_long_tap.eo.h" #include "gesture/efl_canvas_gesture_double_tap.eo.h" #include "gesture/efl_canvas_gesture_triple_tap.eo.h" #include "gesture/efl_canvas_gesture_momentum.eo.h" #include "gesture/efl_canvas_gesture_flick.eo.h" #include "gesture/efl_canvas_gesture_zoom.eo.h" #include "gesture/efl_canvas_gesture_recognizer.eo.h" #include "gesture/efl_canvas_gesture_recognizer_tap.eo.h" #include "gesture/efl_canvas_gesture_recognizer_long_tap.eo.h" #include "gesture/efl_canvas_gesture_recognizer_double_tap.eo.h" #include "gesture/efl_canvas_gesture_recognizer_triple_tap.eo.h" #include "gesture/efl_canvas_gesture_recognizer_momentum.eo.h" #include "gesture/efl_canvas_gesture_recognizer_flick.eo.h" #include "gesture/efl_canvas_gesture_recognizer_zoom.eo.h" #include "gesture/efl_canvas_gesture_manager.eo.h" #include "gesture/efl_gesture_events.eo.h" #include "canvas/efl_canvas_object.eo.h" #include "canvas/efl_canvas_object_animation.eo.h" #include "canvas/efl_canvas_animation.eo.h" #include "canvas/efl_canvas_animation_alpha.eo.h" #include "canvas/efl_canvas_animation_rotate.eo.h" #include "canvas/efl_canvas_animation_scale.eo.h" #include "canvas/efl_canvas_animation_translate.eo.h" #include "canvas/efl_canvas_animation_group.eo.h" #include "canvas/efl_canvas_animation_group_parallel.eo.h" #include "canvas/efl_canvas_animation_group_sequential.eo.h" #include "canvas/efl_canvas_event_grabber.eo.h" /** * @defgroup Evas_3D Evas 3D Extensions * * Evas extension to support 3D rendering. * * @ingroup Evas */ #include "canvas/evas_canvas3d_types.eot.h" /** * @page evas_canvas3d_main Evas 3D * * @since 1.10 * * @section toc Table of Contents * * @li @ref evas_canvas3d_intro * @li @ref evas_canvas3d_example * * @section evas_canvas3d_intro Introduction * * Evas 3D is an extension to support 3D scene graph rendering into 2D Evas * canvases, with tree-based scene graph manipulation and other typical 3D * rendering techniques. * * 3D objects are used to describe three dimensional scenes and to provide * interfaces to connect the scene to an Evas image object for rendering. * * Scenes are constructed by locating cameras and lights and selecting desired * meshes, and organizing Node objects into hierarchical n-ary tree data structures. * The scene is stacked on the canvas with existing Evas objects, which permits * intermingling 3D rendered content in existing 2D application layouts. * * Rendering techniques supported by Evas 3D include flat and phong * shading, normal and texture mapping, and triangle meshes. Existing * Evas objects may also be used as textures inside the 3D scene, * including EFL widgets and even application windows. This latter * capability makes it possible to create a 3D version of an arbitrary * EFL application with minimal code changes. * * @section evas_canvas3d_example Introductory Example * * @include evas-3d-cube.c */ /** * @defgroup Evas_Canvas3D_Types Types & Enums * @ingroup Evas_3D * * Primitive type definitions and enumerations. */ /** * @defgroup Evas_Canvas3D_Object Generic 3D Object Descriptions * @ingroup Evas_3D * * The Evas_Canvas3D_Object structure is an abstract base for other Evas * 3D objects (scenes, nodes, lights, meshes, textures, and materials) * with reference counting and propagation of modifications via * reference tracking. This permits, for example, when a scene object * is modified (marked dirty), a number of image objects rendering that * object to be notified to update themselves, without needing to call * update functions manually. */ /** * @defgroup Evas_Canvas3D_Scene Scene Object * @ingroup Evas_3D * * The Evas_Canvas3D_Scene structure represents a captured image of a * scene graph through its viewing camera. A scene can be associated * with an image object for canvas display via the * evas_object_image_scene_set() function. */ /** * @defgroup Evas_Canvas3D_Node Node Object * @ingroup Evas_3D * * The Evas_Canvas3D_Node structure defines the position, orientation, * and scale of canvas objects (cameras, lights, meshes, etc.) in a 3D * space. These nodes can be organized into a hierarchical n-ary tree * structure to construct a scene graph. */ /** * @defgroup Evas_Canvas3D_Camera Camera Object * @ingroup Evas_3D * * The Evas_Canvas3D_Camera structure defines properties used to * generate 2D pictures of a given scene graph, similar in concept to * focus length and film size for a real world camera. * * A given camera definition can be used to take multiple pictures of * the scene by establishing multiple nodes for the * Evas_Canvas3D_Camera, each of which are located at different * positions and with different orientations. Convenience routines * evas_canvas3d_node_position_set() and * evas_canvas3d_node_look_at_set() are provided to adjust the position * and viewing direction for these nodes. */ /** * @defgroup Evas_Canvas3D_Light Light Object * @ingroup Evas_3D * * The Evas_Canvas3D_Light structure defines various light source * properties. Reflection models include: Ambient, diffuse, and * specular. Light models include directional, point, and spot. The * position and direction for the light is tracked by the node that * contains the light. */ /** * @defgroup Evas_Canvas3D_Mesh Mesh Object * @ingroup Evas_3D * * The Evas_Canvas3D_Mesh structure manages key-frame based mesh * animations for geometrical objects like character models, terrain, * buildings, and other such visible objects. Each mesh frame can have * its own material and geometric data. Blending functions, fog * effects, level of detail boundaries, and shadow properties are also * supported. * * Like other data objects, a mesh definition is located and oriented in * the canvas with one or more nodes, with the mesh transformed from its * modeling coordinate space to the node's coordinate space. The frame * number is also tracked by the node, permitting creation of multiple * nodes in the canvas each set to a different animation frame, for * example. * * Unlike camera and light objects, multiple meshes can be contained in * a single node. */ /** * @defgroup Evas_Canvas3D_Primitive Primitive Object * @ingroup Evas_3D * * The Evas_Canvas3D_Primitive structure defines the data for * generating meshes for various types of primitive shapes such as * cubes, cylinders, spheres, surfaces, terrain, etc. Use the * evas_canvas3d_mesh_from_primitive_set() function to generate a * mesh's frame of this primitive. */ /** * @defgroup Evas_Canvas3D_Texture Texture Object * @ingroup Evas_3D * * The Evas_Canvas3D_Texture structure associates a 2D bitmap image to a * material for a surface. Image data for the texture can be loaded * from memory, a file, or an Evas_Object. Use the * evas_canvas3d_material_texture_set() function to add the texture to * an Evas_Canvas3DMaterial's slot. */ /** * @defgroup Evas_Canvas3D_Material Material Object * @ingroup Evas_3D * * The Evas_Canvas3D_Material structure defines a set of material * attributes used for determining the color of mesh surfaces. Each * attribute is defined by a color value and texture map. The five * attributes are: ambient, diffuse, specular, emission, and normal. */ /** * @typedef Evas_Canvas3D_Surface_Func * * The Evas_Canvas3D_Surface_Func type of functions are used to * create parametric surfaces as primitives. These compute the * vertex x,y,z values for given v,u values. * * @param out_x The x component of the calculated value. * @param out_y The y component of the calculated value. * @param out_z The z component of the calculated value. * @param a is the v value. * @param b is the u value. * @see Evas_Canvas3D_Primitive * * @since 1.15 * @ingroup Evas_Canvas3D_Primitive */ typedef void (Evas_Canvas3D_Surface_Func)(Evas_Real *out_x, Evas_Real *out_y, Evas_Real *out_z, Evas_Real a, Evas_Real b); #include "canvas/evas_canvas3d_object.eo.h" #include "canvas/evas_canvas3d_texture.eo.h" #include "canvas/evas_canvas3d_material.eo.h" #include "canvas/evas_canvas3d_light.eo.h" #include "canvas/evas_canvas3d_primitive.eo.h" #include "canvas/evas_canvas3d_mesh.eo.h" #include "canvas/evas_canvas3d_node.eo.h" #include "canvas/evas_canvas3d_camera.eo.h" #include "canvas/evas_canvas3d_scene.eo.h" #include "canvas/efl_canvas_scene3d.eo.h" #include "canvas/efl_canvas_image_internal.eo.h" #include "canvas/efl_canvas_image.eo.h" #include "canvas/efl_canvas_snapshot.eo.h" #include "canvas/efl_canvas_proxy.eo.h" #include "canvas/efl_gfx_mapping.eo.h" #include "canvas/efl_gfx_vg_value_provider.eo.h" /** * @ingroup Evas_Object_VG * * @{ */ #include "canvas/efl_canvas_vg_object.eo.h" /** * @} */ #include "canvas/efl_canvas_vg_node.eo.h" #include "canvas/efl_canvas_vg_container.eo.h" #include "canvas/efl_canvas_vg_shape.eo.h" #include "canvas/efl_canvas_vg_image.eo.h" #include "canvas/efl_canvas_vg_gradient.eo.h" #include "canvas/efl_canvas_vg_gradient_linear.eo.h" #include "canvas/efl_canvas_vg_gradient_radial.eo.h"