Accumulate small deltas

The clutter frame source tries to average out the frame deltas so that
if one frame takes 1 interval plus a little bit of extra time then the
next frame will be 1 interval minus that little bit of extra
time. Therefore the deltas can sometimes be less than the frame
interval. ClutterTimeline should accumulate these small differences
otherwise it will end up missing out frames so the total duration of
the timeline will be a lot longer.

For example this was causing test-actors to appear to run very slow.
This commit is contained in:
Neil Roberts 2009-04-30 18:47:59 +01:00 committed by Emmanuele Bassi
parent cf28c023a0
commit fa9efe4828

View File

@ -1398,7 +1398,9 @@ clutter_timeline_advance_delta (ClutterTimeline *timeline,
{
clutter_timeline_advance_internal (timeline);
priv->msecs_delta = 0;
/* Keep the remainder of the frame time so that it will be
counted towards the next time if the delta is short */
priv->msecs_delta %= priv->frame_interval;
}
}