2007-07-26 09:13:23 -04:00
|
|
|
/*
|
|
|
|
* Clutter.
|
|
|
|
*
|
|
|
|
* An OpenGL based 'interactive canvas' library.
|
|
|
|
*
|
|
|
|
* Authored By Matthew Allum <mallum@openedhand.com>
|
|
|
|
*
|
|
|
|
* Copyright (C) 2006 OpenedHand
|
|
|
|
*
|
|
|
|
* This library is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
|
|
* License as published by the Free Software Foundation; either
|
|
|
|
* version 2 of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This library is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
* Lesser General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Lesser General Public
|
2008-10-30 13:04:34 -04:00
|
|
|
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
2007-07-26 09:13:23 -04:00
|
|
|
*/
|
|
|
|
|
2008-10-30 13:04:34 -04:00
|
|
|
#if !defined(__CLUTTER_H_INSIDE__) && !defined(CLUTTER_COMPILATION)
|
|
|
|
#error "Only <clutter/clutter.h> can be included directly."
|
|
|
|
#endif
|
|
|
|
|
2007-07-26 09:13:23 -04:00
|
|
|
#ifndef __CLUTTER_TYPES_H__
|
|
|
|
#define __CLUTTER_TYPES_H__
|
|
|
|
|
|
|
|
#include <glib-object.h>
|
|
|
|
#include <clutter/clutter-units.h>
|
|
|
|
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
|
2009-06-16 07:47:19 -04:00
|
|
|
#define CLUTTER_TYPE_ACTOR_BOX (clutter_actor_box_get_type ())
|
2007-07-26 09:13:23 -04:00
|
|
|
#define CLUTTER_TYPE_GEOMETRY (clutter_geometry_get_type ())
|
|
|
|
#define CLUTTER_TYPE_KNOT (clutter_knot_get_type ())
|
|
|
|
#define CLUTTER_TYPE_VERTEX (clutter_vertex_get_type ())
|
|
|
|
|
2007-08-13 16:48:01 -04:00
|
|
|
/* Forward delarations to avoid header catch 22's */
|
2008-05-28 09:48:11 -04:00
|
|
|
typedef struct _ClutterActor ClutterActor;
|
2010-05-14 11:42:50 -04:00
|
|
|
|
2008-05-28 09:48:11 -04:00
|
|
|
typedef struct _ClutterStage ClutterStage;
|
|
|
|
typedef struct _ClutterContainer ClutterContainer; /* dummy */
|
|
|
|
typedef struct _ClutterChildMeta ClutterChildMeta;
|
2009-09-15 12:37:11 -04:00
|
|
|
typedef struct _ClutterLayoutMeta ClutterLayoutMeta;
|
2010-05-14 07:13:49 -04:00
|
|
|
typedef struct _ClutterActorMeta ClutterActorMeta;
|
2010-05-14 11:42:50 -04:00
|
|
|
|
2010-02-05 07:32:00 -05:00
|
|
|
typedef struct _ClutterAnimator ClutterAnimator;
|
2007-08-13 16:48:01 -04:00
|
|
|
|
2010-05-14 07:13:49 -04:00
|
|
|
typedef struct _ClutterAction ClutterAction;
|
|
|
|
typedef struct _ClutterConstraint ClutterConstraint;
|
2010-05-14 11:42:50 -04:00
|
|
|
|
2010-02-17 13:21:50 -05:00
|
|
|
typedef union _ClutterEvent ClutterEvent;
|
|
|
|
|
2007-07-26 11:05:41 -04:00
|
|
|
/**
|
|
|
|
* ClutterGravity:
|
2007-07-29 05:19:37 -04:00
|
|
|
* @CLUTTER_GRAVITY_NONE: Do not apply any gravity
|
|
|
|
* @CLUTTER_GRAVITY_NORTH: Scale from topmost downwards
|
2008-09-17 06:40:40 -04:00
|
|
|
* @CLUTTER_GRAVITY_NORTH_EAST: Scale from the top right corner
|
|
|
|
* @CLUTTER_GRAVITY_EAST: Scale from the right side
|
|
|
|
* @CLUTTER_GRAVITY_SOUTH_EAST: Scale from the bottom right corner
|
2007-07-29 05:19:37 -04:00
|
|
|
* @CLUTTER_GRAVITY_SOUTH: Scale from the bottom upwards
|
2008-09-17 06:40:40 -04:00
|
|
|
* @CLUTTER_GRAVITY_SOUTH_WEST: Scale from the bottom left corner
|
|
|
|
* @CLUTTER_GRAVITY_WEST: Scale from the left side
|
|
|
|
* @CLUTTER_GRAVITY_NORTH_WEST: Scale from the top left corner
|
2007-07-29 05:19:37 -04:00
|
|
|
* @CLUTTER_GRAVITY_CENTER: Scale from the center.
|
2007-07-26 11:05:41 -04:00
|
|
|
*
|
2007-07-29 05:19:37 -04:00
|
|
|
* Gravity of the scaling operations. When a gravity different than
|
|
|
|
* %CLUTTER_GRAVITY_NONE is used, an actor is scaled keeping the position
|
|
|
|
* of the specified portion at the same coordinates.
|
2007-07-26 11:05:41 -04:00
|
|
|
*
|
|
|
|
* Since: 0.2
|
|
|
|
*/
|
2007-07-26 09:13:23 -04:00
|
|
|
typedef enum { /*< prefix=CLUTTER_GRAVITY >*/
|
|
|
|
CLUTTER_GRAVITY_NONE = 0,
|
|
|
|
CLUTTER_GRAVITY_NORTH,
|
|
|
|
CLUTTER_GRAVITY_NORTH_EAST,
|
|
|
|
CLUTTER_GRAVITY_EAST,
|
|
|
|
CLUTTER_GRAVITY_SOUTH_EAST,
|
|
|
|
CLUTTER_GRAVITY_SOUTH,
|
|
|
|
CLUTTER_GRAVITY_SOUTH_WEST,
|
|
|
|
CLUTTER_GRAVITY_WEST,
|
|
|
|
CLUTTER_GRAVITY_NORTH_WEST,
|
|
|
|
CLUTTER_GRAVITY_CENTER
|
|
|
|
} ClutterGravity;
|
|
|
|
|
2009-06-16 07:47:19 -04:00
|
|
|
typedef struct _ClutterActorBox ClutterActorBox;
|
2007-07-26 09:13:23 -04:00
|
|
|
typedef struct _ClutterGeometry ClutterGeometry;
|
|
|
|
typedef struct _ClutterKnot ClutterKnot;
|
|
|
|
typedef struct _ClutterVertex ClutterVertex;
|
|
|
|
|
2009-06-16 07:47:19 -04:00
|
|
|
/**
|
|
|
|
* ClutterVertex:
|
|
|
|
* @x: X coordinate of the vertex
|
|
|
|
* @y: Y coordinate of the vertex
|
|
|
|
* @z: Z coordinate of the vertex
|
|
|
|
*
|
|
|
|
* Vertex of an actor in 3D space, expressed in pixels
|
|
|
|
*
|
|
|
|
* Since: 0.4
|
|
|
|
*/
|
|
|
|
struct _ClutterVertex
|
|
|
|
{
|
|
|
|
gfloat x;
|
|
|
|
gfloat y;
|
|
|
|
gfloat z;
|
|
|
|
};
|
|
|
|
|
|
|
|
GType clutter_vertex_get_type (void) G_GNUC_CONST;
|
|
|
|
ClutterVertex *clutter_vertex_new (gfloat x,
|
|
|
|
gfloat y,
|
|
|
|
gfloat z);
|
|
|
|
ClutterVertex *clutter_vertex_copy (const ClutterVertex *vertex);
|
|
|
|
void clutter_vertex_free (ClutterVertex *vertex);
|
|
|
|
gboolean clutter_vertex_equal (const ClutterVertex *vertex_a,
|
|
|
|
const ClutterVertex *vertex_b);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ClutterActorBox:
|
|
|
|
* @x1: X coordinate of the top left corner
|
|
|
|
* @y1: Y coordinate of the top left corner
|
|
|
|
* @x2: X coordinate of the bottom right corner
|
|
|
|
* @y2: Y coordinate of the bottom right corner
|
|
|
|
*
|
|
|
|
* Bounding box of an actor. The coordinates of the top left and right bottom
|
|
|
|
* corners of an actor. The coordinates of the two points are expressed in
|
|
|
|
* pixels with sub-pixel precision
|
|
|
|
*/
|
|
|
|
struct _ClutterActorBox
|
|
|
|
{
|
|
|
|
gfloat x1;
|
|
|
|
gfloat y1;
|
|
|
|
|
|
|
|
gfloat x2;
|
|
|
|
gfloat y2;
|
|
|
|
};
|
|
|
|
|
|
|
|
GType clutter_actor_box_get_type (void) G_GNUC_CONST;
|
|
|
|
ClutterActorBox *clutter_actor_box_new (gfloat x_1,
|
|
|
|
gfloat y_1,
|
|
|
|
gfloat x_2,
|
|
|
|
gfloat y_2);
|
|
|
|
ClutterActorBox *clutter_actor_box_copy (const ClutterActorBox *box);
|
|
|
|
void clutter_actor_box_free (ClutterActorBox *box);
|
|
|
|
gboolean clutter_actor_box_equal (const ClutterActorBox *box_a,
|
|
|
|
const ClutterActorBox *box_b);
|
2009-06-16 11:30:41 -04:00
|
|
|
gfloat clutter_actor_box_get_x (const ClutterActorBox *box);
|
|
|
|
gfloat clutter_actor_box_get_y (const ClutterActorBox *box);
|
|
|
|
gfloat clutter_actor_box_get_width (const ClutterActorBox *box);
|
|
|
|
gfloat clutter_actor_box_get_height (const ClutterActorBox *box);
|
2009-06-16 07:47:19 -04:00
|
|
|
void clutter_actor_box_get_origin (const ClutterActorBox *box,
|
|
|
|
gfloat *x,
|
|
|
|
gfloat *y);
|
|
|
|
void clutter_actor_box_get_size (const ClutterActorBox *box,
|
|
|
|
gfloat *width,
|
|
|
|
gfloat *height);
|
|
|
|
gfloat clutter_actor_box_get_area (const ClutterActorBox *box);
|
|
|
|
gboolean clutter_actor_box_contains (const ClutterActorBox *box,
|
|
|
|
gfloat x,
|
|
|
|
gfloat y);
|
|
|
|
void clutter_actor_box_from_vertices (ClutterActorBox *box,
|
|
|
|
const ClutterVertex verts[]);
|
2009-12-11 18:48:58 -05:00
|
|
|
void clutter_actor_box_interpolate (const ClutterActorBox *initial,
|
|
|
|
const ClutterActorBox *final,
|
|
|
|
gdouble progress,
|
|
|
|
ClutterActorBox *result);
|
|
|
|
void clutter_actor_box_clamp_to_pixel (ClutterActorBox *box);
|
2009-06-16 07:47:19 -04:00
|
|
|
|
2007-07-26 09:13:23 -04:00
|
|
|
/**
|
|
|
|
* ClutterGeometry:
|
|
|
|
* @x: X coordinate of the top left corner of an actor
|
|
|
|
* @y: Y coordinate of the top left corner of an actor
|
|
|
|
* @width: width of an actor
|
|
|
|
* @height: height of an actor
|
|
|
|
*
|
2008-02-15 09:39:25 -05:00
|
|
|
* The rectangle containing an actor's bounding box, measured in pixels.
|
2007-07-26 09:13:23 -04:00
|
|
|
*/
|
|
|
|
struct _ClutterGeometry
|
|
|
|
{
|
|
|
|
/*< public >*/
|
|
|
|
gint x;
|
|
|
|
gint y;
|
|
|
|
guint width;
|
|
|
|
guint height;
|
|
|
|
};
|
|
|
|
|
|
|
|
GType clutter_geometry_get_type (void) G_GNUC_CONST;
|
|
|
|
|
2010-03-18 13:55:01 -04:00
|
|
|
void clutter_geometry_union (const ClutterGeometry *geometry_a,
|
|
|
|
const ClutterGeometry *geometry_b,
|
|
|
|
ClutterGeometry *result);
|
|
|
|
|
2007-07-26 09:13:23 -04:00
|
|
|
/**
|
|
|
|
* ClutterKnot:
|
|
|
|
* @x: X coordinate of the knot
|
|
|
|
* @y: Y coordinate of the knot
|
|
|
|
*
|
|
|
|
* Point in a path behaviour.
|
|
|
|
*
|
|
|
|
* Since: 0.2
|
|
|
|
*/
|
|
|
|
struct _ClutterKnot
|
|
|
|
{
|
|
|
|
gint x;
|
|
|
|
gint y;
|
|
|
|
};
|
|
|
|
|
|
|
|
GType clutter_knot_get_type (void) G_GNUC_CONST;
|
|
|
|
ClutterKnot *clutter_knot_copy (const ClutterKnot *knot);
|
|
|
|
void clutter_knot_free (ClutterKnot *knot);
|
|
|
|
gboolean clutter_knot_equal (const ClutterKnot *knot_a,
|
|
|
|
const ClutterKnot *knot_b);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ClutterRotateAxis:
|
2007-07-26 11:05:41 -04:00
|
|
|
* @CLUTTER_X_AXIS: Rotate around the X axis
|
|
|
|
* @CLUTTER_Y_AXIS: Rotate around the Y axis
|
|
|
|
* @CLUTTER_Z_AXIS: Rotate around the Z axis
|
2007-07-26 09:13:23 -04:00
|
|
|
*
|
2007-07-26 11:05:41 -04:00
|
|
|
* Axis of a rotation.
|
2007-07-26 09:13:23 -04:00
|
|
|
*
|
|
|
|
* Since: 0.4
|
|
|
|
*/
|
|
|
|
typedef enum { /*< prefix=CLUTTER >*/
|
|
|
|
CLUTTER_X_AXIS,
|
|
|
|
CLUTTER_Y_AXIS,
|
|
|
|
CLUTTER_Z_AXIS
|
|
|
|
} ClutterRotateAxis;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ClutterRotateDirection:
|
|
|
|
* @CLUTTER_ROTATE_CW: Clockwise rotation
|
|
|
|
* @CLUTTER_ROTATE_CCW: Counter-clockwise rotation
|
|
|
|
*
|
2007-07-26 11:05:41 -04:00
|
|
|
* Direction of a rotation.
|
2007-07-26 09:13:23 -04:00
|
|
|
*
|
|
|
|
* Since: 0.4
|
|
|
|
*/
|
|
|
|
typedef enum { /*< prefix=CLUTTER_ROTATE >*/
|
|
|
|
CLUTTER_ROTATE_CW,
|
|
|
|
CLUTTER_ROTATE_CCW
|
|
|
|
} ClutterRotateDirection;
|
|
|
|
|
2008-06-10 13:11:14 -04:00
|
|
|
/**
|
|
|
|
* ClutterRequestMode:
|
|
|
|
* @CLUTTER_REQUEST_HEIGHT_FOR_WIDTH: Height for width requests
|
|
|
|
* @CLUTTER_REQUEST_WIDTH_FOR_HEIGHT: Width for height requests
|
|
|
|
*
|
|
|
|
* Specifies the type of requests for a #ClutterActor.
|
|
|
|
*
|
|
|
|
* Since: 0.8
|
|
|
|
*/
|
|
|
|
typedef enum {
|
|
|
|
CLUTTER_REQUEST_HEIGHT_FOR_WIDTH,
|
|
|
|
CLUTTER_REQUEST_WIDTH_FOR_HEIGHT
|
|
|
|
} ClutterRequestMode;
|
|
|
|
|
2008-11-17 Emmanuele Bassi <ebassi@linux.intel.com>
Bug 1014 - Clutter Animation API Improvements
* clutter/Makefile.am:
* clutter/clutter.h: Update the build
* clutter/clutter-types.h: Add AnimationMode, an enumeration
for easing functions.
* clutter/clutter-alpha.[ch]: Add the :mode property to
control the function bound to an Alpha instance using an
enumeration value. Also add six new alpha functions:
- ease-in, ease-out, ease-in-out
- sine-in, sine-out, sine-in-out
* clutter/clutter-deprecated.h: Deprecate the #defines for
the alpha functions. They will be replaced by entries in the
ClutterAnimationMode.
* clutter/clutter-interval.[ch]: Add ClutterInterval, an
object for defining, validating and computing an interval
between two values.
* clutter/clutter-animation.[ch]: Add ClutterAnimation, an
object responsible for animation the properties of a single
actor along an interval of values. ClutterAnimation memory
management is automatic. A simple wrapper method for
ClutterActor is provided:
clutter_actor_animate()
which will create, or update, an animation for the passed
actor.
* clutter/clutter-debug.h:
* clutter/clutter-main.c: Add a new 'animation' debug note.
* clutter/clutter-script.c: Clean up the alpha functions
whitelist, and add the new functions.
* doc/reference/clutter/Makefile.am:
* doc/reference/clutter/clutter-sections.txt: Update the
API reference.
* doc/reference/clutter/clutter-animation.xml: Renamed to
doc/reference/clutter/clutter-animation-tutorial.xml to
avoid clashes with the ClutterAnimation section.
* doc/reference/clutter/clutter-docs.sgml: Renamed to
doc/reference/clutter/clutter-docs.xml, as it was an XML
file and not a SGML file.
* tests/Makefile.am:
* tests/interactive/Makefile.am:
* tests/interactive/test-animation.c:
* tests/interactive/test-easing.c: Add two tests for the
new simple animation API and the easing functions.
* tests/interactive/test-actors.c:
* tests/interactive/test-behave.c:
* tests/interactive/test-depth.c:
* tests/interactive/test-effects.c:
* tests/interactive/test-layout.c:
* tests/interactive/test-multistage.c:
* tests/interactive/test-paint-wrapper.c:
* tests/interactive/test-rotate.c:
* tests/interactive/test-scale.c:
* tests/interactive/test-texture-quality.c:
* tests/interactive/test-threads.c:
* tests/interactive/test-viewport.c: Update interactive tests
to the deprecations and new alpha API.
2008-11-18 04:50:03 -05:00
|
|
|
/**
|
|
|
|
* ClutterAnimationMode:
|
|
|
|
* @CLUTTER_CUSTOM_MODE: custom progress function
|
2009-01-20 12:57:30 -05:00
|
|
|
* @CLUTTER_LINEAR: linear tweening
|
|
|
|
* @CLUTTER_EASE_IN_QUAD: quadratic tweening
|
|
|
|
* @CLUTTER_EASE_OUT_QUAD: quadratic tweening, inverse of
|
|
|
|
* %CLUTTER_EASE_IN_QUAD
|
|
|
|
* @CLUTTER_EASE_IN_OUT_QUAD: quadratic tweening, combininig
|
|
|
|
* %CLUTTER_EASE_IN_QUAD and %CLUTTER_EASE_OUT_QUAD
|
|
|
|
* @CLUTTER_EASE_IN_CUBIC: cubic tweening
|
|
|
|
* @CLUTTER_EASE_OUT_CUBIC: cubic tweening, invers of
|
|
|
|
* %CLUTTER_EASE_IN_CUBIC
|
|
|
|
* @CLUTTER_EASE_IN_OUT_CUBIC: cubic tweening, combining
|
|
|
|
* %CLUTTER_EASE_IN_CUBIC and %CLUTTER_EASE_OUT_CUBIC
|
|
|
|
* @CLUTTER_EASE_IN_QUART: quartic tweening
|
|
|
|
* @CLUTTER_EASE_OUT_QUART: quartic tweening, inverse of
|
|
|
|
* %CLUTTER_EASE_IN_QUART
|
|
|
|
* @CLUTTER_EASE_IN_OUT_QUART: quartic tweening, combining
|
|
|
|
* %CLUTTER_EASE_IN_QUART and %CLUTTER_EASE_OUT_QUART
|
|
|
|
* @CLUTTER_EASE_IN_QUINT: quintic tweening
|
|
|
|
* @CLUTTER_EASE_OUT_QUINT: quintic tweening, inverse of
|
|
|
|
* %CLUTTER_EASE_IN_QUINT
|
|
|
|
* @CLUTTER_EASE_IN_OUT_QUINT: fifth power tweening, combining
|
|
|
|
* %CLUTTER_EASE_IN_QUINT and %CLUTTER_EASE_OUT_QUINT
|
|
|
|
* @CLUTTER_EASE_IN_SINE: sinusoidal tweening
|
|
|
|
* @CLUTTER_EASE_OUT_SINE: sinusoidal tweening, inverse of
|
|
|
|
* %CLUTTER_EASE_IN_SINE
|
|
|
|
* @CLUTTER_EASE_IN_OUT_SINE: sine wave tweening, combining
|
|
|
|
* %CLUTTER_EASE_IN_SINE and %CLUTTER_EASE_OUT_SINE
|
|
|
|
* @CLUTTER_EASE_IN_EXPO: exponential tweening
|
|
|
|
* @CLUTTER_EASE_OUT_EXPO: exponential tweening, inverse of
|
|
|
|
* %CLUTTER_EASE_IN_EXPO
|
|
|
|
* @CLUTTER_EASE_IN_OUT_EXPO: exponential tweening, combining
|
|
|
|
* %CLUTTER_EASE_IN_EXPO and %CLUTTER_EASE_OUT_EXPO
|
|
|
|
* @CLUTTER_EASE_IN_CIRC: circular tweening
|
|
|
|
* @CLUTTER_EASE_OUT_CIRC: circular tweening, inverse of
|
|
|
|
* %CLUTTER_EASE_IN_CIRC
|
|
|
|
* @CLUTTER_EASE_IN_OUT_CIRC: circular tweening, combining
|
|
|
|
* %CLUTTER_EASE_IN_CIRC and %CLUTTER_EASE_OUT_CIRC
|
|
|
|
* @CLUTTER_EASE_IN_ELASTIC: elastic tweening, with offshoot on start
|
|
|
|
* @CLUTTER_EASE_OUT_ELASTIC: elastic tweening, with offshoot on end
|
|
|
|
* @CLUTTER_EASE_IN_OUT_ELASTIC: elastic tweening with offshoot on both ends
|
|
|
|
* @CLUTTER_EASE_IN_BACK: overshooting cubic tweening, with
|
|
|
|
* backtracking on start
|
|
|
|
* @CLUTTER_EASE_OUT_BACK: overshooting cubic tweening, with
|
|
|
|
* backtracking on end
|
|
|
|
* @CLUTTER_EASE_IN_OUT_BACK: overshooting cubic tweening, with
|
|
|
|
* backtracking on both ends
|
|
|
|
* @CLUTTER_EASE_IN_BOUNCE: exponentially decaying parabolic (bounce)
|
|
|
|
* tweening, with bounce on start
|
|
|
|
* @CLUTTER_EASE_OUT_BOUNCE: exponentially decaying parabolic (bounce)
|
|
|
|
* tweening, with bounce on end
|
|
|
|
* @CLUTTER_EASE_IN_OUT_BOUNCE: exponentially decaying parabolic (bounce)
|
|
|
|
* tweening, with bounce on both ends
|
|
|
|
* @CLUTTER_ANIMATION_LAST: last animation mode, used as a guard for
|
|
|
|
* registered global alpha functions
|
2008-11-17 Emmanuele Bassi <ebassi@linux.intel.com>
Bug 1014 - Clutter Animation API Improvements
* clutter/Makefile.am:
* clutter/clutter.h: Update the build
* clutter/clutter-types.h: Add AnimationMode, an enumeration
for easing functions.
* clutter/clutter-alpha.[ch]: Add the :mode property to
control the function bound to an Alpha instance using an
enumeration value. Also add six new alpha functions:
- ease-in, ease-out, ease-in-out
- sine-in, sine-out, sine-in-out
* clutter/clutter-deprecated.h: Deprecate the #defines for
the alpha functions. They will be replaced by entries in the
ClutterAnimationMode.
* clutter/clutter-interval.[ch]: Add ClutterInterval, an
object for defining, validating and computing an interval
between two values.
* clutter/clutter-animation.[ch]: Add ClutterAnimation, an
object responsible for animation the properties of a single
actor along an interval of values. ClutterAnimation memory
management is automatic. A simple wrapper method for
ClutterActor is provided:
clutter_actor_animate()
which will create, or update, an animation for the passed
actor.
* clutter/clutter-debug.h:
* clutter/clutter-main.c: Add a new 'animation' debug note.
* clutter/clutter-script.c: Clean up the alpha functions
whitelist, and add the new functions.
* doc/reference/clutter/Makefile.am:
* doc/reference/clutter/clutter-sections.txt: Update the
API reference.
* doc/reference/clutter/clutter-animation.xml: Renamed to
doc/reference/clutter/clutter-animation-tutorial.xml to
avoid clashes with the ClutterAnimation section.
* doc/reference/clutter/clutter-docs.sgml: Renamed to
doc/reference/clutter/clutter-docs.xml, as it was an XML
file and not a SGML file.
* tests/Makefile.am:
* tests/interactive/Makefile.am:
* tests/interactive/test-animation.c:
* tests/interactive/test-easing.c: Add two tests for the
new simple animation API and the easing functions.
* tests/interactive/test-actors.c:
* tests/interactive/test-behave.c:
* tests/interactive/test-depth.c:
* tests/interactive/test-effects.c:
* tests/interactive/test-layout.c:
* tests/interactive/test-multistage.c:
* tests/interactive/test-paint-wrapper.c:
* tests/interactive/test-rotate.c:
* tests/interactive/test-scale.c:
* tests/interactive/test-texture-quality.c:
* tests/interactive/test-threads.c:
* tests/interactive/test-viewport.c: Update interactive tests
to the deprecations and new alpha API.
2008-11-18 04:50:03 -05:00
|
|
|
*
|
|
|
|
* The animation modes used by #ClutterAlpha and #ClutterAnimation. This
|
2009-01-20 12:57:30 -05:00
|
|
|
* enumeration can be expanded in later versions of Clutter. See the
|
|
|
|
* #ClutterAlpha documentation for a graph of all the animation modes.
|
|
|
|
*
|
|
|
|
* Every global alpha function registered using clutter_alpha_register_func()
|
|
|
|
* or clutter_alpha_register_closure() will have a logical id greater than
|
|
|
|
* %CLUTTER_ANIMATION_LAST.
|
2008-11-17 Emmanuele Bassi <ebassi@linux.intel.com>
Bug 1014 - Clutter Animation API Improvements
* clutter/Makefile.am:
* clutter/clutter.h: Update the build
* clutter/clutter-types.h: Add AnimationMode, an enumeration
for easing functions.
* clutter/clutter-alpha.[ch]: Add the :mode property to
control the function bound to an Alpha instance using an
enumeration value. Also add six new alpha functions:
- ease-in, ease-out, ease-in-out
- sine-in, sine-out, sine-in-out
* clutter/clutter-deprecated.h: Deprecate the #defines for
the alpha functions. They will be replaced by entries in the
ClutterAnimationMode.
* clutter/clutter-interval.[ch]: Add ClutterInterval, an
object for defining, validating and computing an interval
between two values.
* clutter/clutter-animation.[ch]: Add ClutterAnimation, an
object responsible for animation the properties of a single
actor along an interval of values. ClutterAnimation memory
management is automatic. A simple wrapper method for
ClutterActor is provided:
clutter_actor_animate()
which will create, or update, an animation for the passed
actor.
* clutter/clutter-debug.h:
* clutter/clutter-main.c: Add a new 'animation' debug note.
* clutter/clutter-script.c: Clean up the alpha functions
whitelist, and add the new functions.
* doc/reference/clutter/Makefile.am:
* doc/reference/clutter/clutter-sections.txt: Update the
API reference.
* doc/reference/clutter/clutter-animation.xml: Renamed to
doc/reference/clutter/clutter-animation-tutorial.xml to
avoid clashes with the ClutterAnimation section.
* doc/reference/clutter/clutter-docs.sgml: Renamed to
doc/reference/clutter/clutter-docs.xml, as it was an XML
file and not a SGML file.
* tests/Makefile.am:
* tests/interactive/Makefile.am:
* tests/interactive/test-animation.c:
* tests/interactive/test-easing.c: Add two tests for the
new simple animation API and the easing functions.
* tests/interactive/test-actors.c:
* tests/interactive/test-behave.c:
* tests/interactive/test-depth.c:
* tests/interactive/test-effects.c:
* tests/interactive/test-layout.c:
* tests/interactive/test-multistage.c:
* tests/interactive/test-paint-wrapper.c:
* tests/interactive/test-rotate.c:
* tests/interactive/test-scale.c:
* tests/interactive/test-texture-quality.c:
* tests/interactive/test-threads.c:
* tests/interactive/test-viewport.c: Update interactive tests
to the deprecations and new alpha API.
2008-11-18 04:50:03 -05:00
|
|
|
*
|
|
|
|
* Since: 1.0
|
|
|
|
*/
|
|
|
|
typedef enum {
|
2009-01-16 08:42:06 -05:00
|
|
|
CLUTTER_CUSTOM_MODE = 0,
|
2008-11-18 07:42:05 -05:00
|
|
|
|
2009-01-20 12:57:30 -05:00
|
|
|
/* linear */
|
2008-11-17 Emmanuele Bassi <ebassi@linux.intel.com>
Bug 1014 - Clutter Animation API Improvements
* clutter/Makefile.am:
* clutter/clutter.h: Update the build
* clutter/clutter-types.h: Add AnimationMode, an enumeration
for easing functions.
* clutter/clutter-alpha.[ch]: Add the :mode property to
control the function bound to an Alpha instance using an
enumeration value. Also add six new alpha functions:
- ease-in, ease-out, ease-in-out
- sine-in, sine-out, sine-in-out
* clutter/clutter-deprecated.h: Deprecate the #defines for
the alpha functions. They will be replaced by entries in the
ClutterAnimationMode.
* clutter/clutter-interval.[ch]: Add ClutterInterval, an
object for defining, validating and computing an interval
between two values.
* clutter/clutter-animation.[ch]: Add ClutterAnimation, an
object responsible for animation the properties of a single
actor along an interval of values. ClutterAnimation memory
management is automatic. A simple wrapper method for
ClutterActor is provided:
clutter_actor_animate()
which will create, or update, an animation for the passed
actor.
* clutter/clutter-debug.h:
* clutter/clutter-main.c: Add a new 'animation' debug note.
* clutter/clutter-script.c: Clean up the alpha functions
whitelist, and add the new functions.
* doc/reference/clutter/Makefile.am:
* doc/reference/clutter/clutter-sections.txt: Update the
API reference.
* doc/reference/clutter/clutter-animation.xml: Renamed to
doc/reference/clutter/clutter-animation-tutorial.xml to
avoid clashes with the ClutterAnimation section.
* doc/reference/clutter/clutter-docs.sgml: Renamed to
doc/reference/clutter/clutter-docs.xml, as it was an XML
file and not a SGML file.
* tests/Makefile.am:
* tests/interactive/Makefile.am:
* tests/interactive/test-animation.c:
* tests/interactive/test-easing.c: Add two tests for the
new simple animation API and the easing functions.
* tests/interactive/test-actors.c:
* tests/interactive/test-behave.c:
* tests/interactive/test-depth.c:
* tests/interactive/test-effects.c:
* tests/interactive/test-layout.c:
* tests/interactive/test-multistage.c:
* tests/interactive/test-paint-wrapper.c:
* tests/interactive/test-rotate.c:
* tests/interactive/test-scale.c:
* tests/interactive/test-texture-quality.c:
* tests/interactive/test-threads.c:
* tests/interactive/test-viewport.c: Update interactive tests
to the deprecations and new alpha API.
2008-11-18 04:50:03 -05:00
|
|
|
CLUTTER_LINEAR,
|
2009-01-16 08:42:06 -05:00
|
|
|
|
2009-01-20 12:57:30 -05:00
|
|
|
/* quadratic */
|
|
|
|
CLUTTER_EASE_IN_QUAD,
|
|
|
|
CLUTTER_EASE_OUT_QUAD,
|
|
|
|
CLUTTER_EASE_IN_OUT_QUAD,
|
|
|
|
|
|
|
|
/* cubic */
|
|
|
|
CLUTTER_EASE_IN_CUBIC,
|
|
|
|
CLUTTER_EASE_OUT_CUBIC,
|
|
|
|
CLUTTER_EASE_IN_OUT_CUBIC,
|
|
|
|
|
|
|
|
/* quartic */
|
|
|
|
CLUTTER_EASE_IN_QUART,
|
|
|
|
CLUTTER_EASE_OUT_QUART,
|
|
|
|
CLUTTER_EASE_IN_OUT_QUART,
|
|
|
|
|
|
|
|
/* quintic */
|
|
|
|
CLUTTER_EASE_IN_QUINT,
|
|
|
|
CLUTTER_EASE_OUT_QUINT,
|
|
|
|
CLUTTER_EASE_IN_OUT_QUINT,
|
|
|
|
|
|
|
|
/* sinusoidal */
|
|
|
|
CLUTTER_EASE_IN_SINE,
|
|
|
|
CLUTTER_EASE_OUT_SINE,
|
|
|
|
CLUTTER_EASE_IN_OUT_SINE,
|
|
|
|
|
|
|
|
/* exponential */
|
|
|
|
CLUTTER_EASE_IN_EXPO,
|
|
|
|
CLUTTER_EASE_OUT_EXPO,
|
|
|
|
CLUTTER_EASE_IN_OUT_EXPO,
|
|
|
|
|
|
|
|
/* circular */
|
|
|
|
CLUTTER_EASE_IN_CIRC,
|
|
|
|
CLUTTER_EASE_OUT_CIRC,
|
|
|
|
CLUTTER_EASE_IN_OUT_CIRC,
|
|
|
|
|
|
|
|
/* elastic */
|
|
|
|
CLUTTER_EASE_IN_ELASTIC,
|
|
|
|
CLUTTER_EASE_OUT_ELASTIC,
|
|
|
|
CLUTTER_EASE_IN_OUT_ELASTIC,
|
|
|
|
|
|
|
|
/* overshooting cubic */
|
|
|
|
CLUTTER_EASE_IN_BACK,
|
|
|
|
CLUTTER_EASE_OUT_BACK,
|
|
|
|
CLUTTER_EASE_IN_OUT_BACK,
|
|
|
|
|
|
|
|
/* exponentially decaying parabolic */
|
|
|
|
CLUTTER_EASE_IN_BOUNCE,
|
|
|
|
CLUTTER_EASE_OUT_BOUNCE,
|
|
|
|
CLUTTER_EASE_IN_OUT_BOUNCE,
|
|
|
|
|
|
|
|
/* guard, before registered alpha functions */
|
2009-01-16 08:42:06 -05:00
|
|
|
CLUTTER_ANIMATION_LAST
|
2008-11-17 Emmanuele Bassi <ebassi@linux.intel.com>
Bug 1014 - Clutter Animation API Improvements
* clutter/Makefile.am:
* clutter/clutter.h: Update the build
* clutter/clutter-types.h: Add AnimationMode, an enumeration
for easing functions.
* clutter/clutter-alpha.[ch]: Add the :mode property to
control the function bound to an Alpha instance using an
enumeration value. Also add six new alpha functions:
- ease-in, ease-out, ease-in-out
- sine-in, sine-out, sine-in-out
* clutter/clutter-deprecated.h: Deprecate the #defines for
the alpha functions. They will be replaced by entries in the
ClutterAnimationMode.
* clutter/clutter-interval.[ch]: Add ClutterInterval, an
object for defining, validating and computing an interval
between two values.
* clutter/clutter-animation.[ch]: Add ClutterAnimation, an
object responsible for animation the properties of a single
actor along an interval of values. ClutterAnimation memory
management is automatic. A simple wrapper method for
ClutterActor is provided:
clutter_actor_animate()
which will create, or update, an animation for the passed
actor.
* clutter/clutter-debug.h:
* clutter/clutter-main.c: Add a new 'animation' debug note.
* clutter/clutter-script.c: Clean up the alpha functions
whitelist, and add the new functions.
* doc/reference/clutter/Makefile.am:
* doc/reference/clutter/clutter-sections.txt: Update the
API reference.
* doc/reference/clutter/clutter-animation.xml: Renamed to
doc/reference/clutter/clutter-animation-tutorial.xml to
avoid clashes with the ClutterAnimation section.
* doc/reference/clutter/clutter-docs.sgml: Renamed to
doc/reference/clutter/clutter-docs.xml, as it was an XML
file and not a SGML file.
* tests/Makefile.am:
* tests/interactive/Makefile.am:
* tests/interactive/test-animation.c:
* tests/interactive/test-easing.c: Add two tests for the
new simple animation API and the easing functions.
* tests/interactive/test-actors.c:
* tests/interactive/test-behave.c:
* tests/interactive/test-depth.c:
* tests/interactive/test-effects.c:
* tests/interactive/test-layout.c:
* tests/interactive/test-multistage.c:
* tests/interactive/test-paint-wrapper.c:
* tests/interactive/test-rotate.c:
* tests/interactive/test-scale.c:
* tests/interactive/test-texture-quality.c:
* tests/interactive/test-threads.c:
* tests/interactive/test-viewport.c: Update interactive tests
to the deprecations and new alpha API.
2008-11-18 04:50:03 -05:00
|
|
|
} ClutterAnimationMode;
|
|
|
|
|
2009-01-27 09:25:50 -05:00
|
|
|
/**
|
|
|
|
* ClutterFontFlags:
|
|
|
|
* @CLUTTER_FONT_MIPMAPPING: Set to use mipmaps for the glyph cache textures.
|
|
|
|
* @CLUTTER_FONT_HINTING: Set to enable hinting on the glyphs.
|
|
|
|
*
|
|
|
|
* Runtime flags to change the font quality. To be used with
|
|
|
|
* clutter_set_font_flags().
|
|
|
|
*
|
|
|
|
* Since: 1.0
|
|
|
|
*/
|
|
|
|
typedef enum
|
|
|
|
{
|
|
|
|
CLUTTER_FONT_MIPMAPPING = (1 << 0),
|
|
|
|
CLUTTER_FONT_HINTING = (1 << 1),
|
|
|
|
} ClutterFontFlags;
|
|
|
|
|
2009-11-06 11:49:55 -05:00
|
|
|
/**
|
|
|
|
* ClutterTextDirection:
|
|
|
|
* @CLUTTER_TEXT_DIRECTION_DEFAULT: Use the default setting, as returned
|
|
|
|
* by clutter_get_default_text_direction()
|
|
|
|
* @CLUTTER_TEXT_DIRECTION_LTR: Use left-to-right text direction
|
|
|
|
* @CLUTTER_TEXT_DIRECTION_RTL: Use right-to-left text direction
|
|
|
|
*
|
|
|
|
* The text direction to be used by #ClutterActor<!-- -->s
|
|
|
|
*
|
|
|
|
* Since: 1.2
|
|
|
|
*/
|
|
|
|
typedef enum {
|
|
|
|
CLUTTER_TEXT_DIRECTION_DEFAULT,
|
|
|
|
CLUTTER_TEXT_DIRECTION_LTR,
|
|
|
|
CLUTTER_TEXT_DIRECTION_RTL
|
|
|
|
} ClutterTextDirection;
|
|
|
|
|
2010-06-11 09:47:48 -04:00
|
|
|
/**
|
|
|
|
* ClutterShaderType:
|
|
|
|
* @CLUTTER_VERTEX_SHADER: a vertex shader
|
|
|
|
* @CLUTTER_FRAGMENT_SHADER: a fragment shader
|
|
|
|
*
|
|
|
|
* The type of GLSL shader program
|
|
|
|
*
|
|
|
|
* Since: 1.4
|
|
|
|
*/
|
|
|
|
typedef enum {
|
|
|
|
CLUTTER_VERTEX_SHADER,
|
|
|
|
CLUTTER_FRAGMENT_SHADER
|
|
|
|
} ClutterShaderType;
|
|
|
|
|
2007-07-26 09:13:23 -04:00
|
|
|
G_END_DECLS
|
|
|
|
|
|
|
|
#endif /* __CLUTTER_TYPES_H__ */
|