Easing modes are not used when computing the value of a KeyframeTransition

An easing mode can be set on a frame of a KeyframeTransition.
However, the progress value of the current frame is computed using using
a linear function.
This patch adds a call to clutter_easing_for_mode() to compute
the actual progress value.
Note that parametrized easing modes (bezier and 'step') are not taken
into account.

https://bugzilla.gnome.org/show_bug.cgi?id=740997
This commit is contained in:
Samuel Degrande 2014-12-01 20:18:46 +01:00 committed by Emmanuele Bassi
parent d3dbd169d6
commit e7d1458298

View File

@ -295,8 +295,8 @@ clutter_keyframe_transition_compute_value (ClutterTransition *transition,
/* update the interval to be used to interpolate the property */ /* update the interval to be used to interpolate the property */
real_interval = cur_frame->interval; real_interval = cur_frame->interval;
/* normalize the progress */ /* normalize the progress and apply the easing mode */
real_progress = (p - cur_frame->start) / (cur_frame->end - cur_frame->start); real_progress = clutter_easing_for_mode ( cur_frame->mode, (p - cur_frame->start), (cur_frame->end - cur_frame->start));
#ifdef CLUTTER_ENABLE_DEBUG #ifdef CLUTTER_ENABLE_DEBUG
if (CLUTTER_HAS_DEBUG (ANIMATION)) if (CLUTTER_HAS_DEBUG (ANIMATION))