efl/src/lib/evas/Evas_Eo.h

467 lines
13 KiB
C

#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"