Merge branch 'timeline-no-fps' into 1.0-integration

This commit is contained in:
Neil Roberts 2009-06-05 12:20:41 +01:00
commit 3ee093e356
31 changed files with 324 additions and 914 deletions

View File

@ -603,9 +603,7 @@ clutter_ease_out_quad (ClutterAlpha *alpha,
gpointer dummy G_GNUC_UNUSED)
{
ClutterTimeline *timeline = alpha->priv->timeline;
gdouble t = clutter_timeline_get_current_frame (timeline);
gdouble d = clutter_timeline_get_n_frames (timeline);
gdouble p = t / d;
gdouble p = clutter_timeline_get_progress (timeline);
return -1.0 * p * (p - 2);
}
@ -615,8 +613,8 @@ clutter_ease_in_out_quad (ClutterAlpha *alpha,
gpointer dummy G_GNUC_UNUSED)
{
ClutterTimeline *timeline = alpha->priv->timeline;
gdouble t = clutter_timeline_get_current_frame (timeline);
gdouble d = clutter_timeline_get_n_frames (timeline);
gdouble t = clutter_timeline_get_elapsed_time (timeline);
gdouble d = clutter_timeline_get_duration (timeline);
gdouble p = t / (d / 2);
if (p < 1)
@ -632,9 +630,7 @@ clutter_ease_in_cubic (ClutterAlpha *alpha,
gpointer dummy G_GNUC_UNUSED)
{
ClutterTimeline *timeline = alpha->priv->timeline;
gdouble t = clutter_timeline_get_current_frame (timeline);
gdouble d = clutter_timeline_get_n_frames (timeline);
gdouble p = t / d;
gdouble p = clutter_timeline_get_progress (timeline);
return p * p * p;
}
@ -644,8 +640,8 @@ clutter_ease_out_cubic (ClutterAlpha *alpha,
gpointer dummy G_GNUC_UNUSED)
{
ClutterTimeline *timeline = alpha->priv->timeline;
gdouble t = clutter_timeline_get_current_frame (timeline);
gdouble d = clutter_timeline_get_n_frames (timeline);
gdouble t = clutter_timeline_get_elapsed_time (timeline);
gdouble d = clutter_timeline_get_duration (timeline);
gdouble p = t / d - 1;
return p * p * p + 1;
@ -656,8 +652,8 @@ clutter_ease_in_out_cubic (ClutterAlpha *alpha,
gpointer dummy G_GNUC_UNUSED)
{
ClutterTimeline *timeline = alpha->priv->timeline;
gdouble t = clutter_timeline_get_current_frame (timeline);
gdouble d = clutter_timeline_get_n_frames (timeline);
gdouble t = clutter_timeline_get_elapsed_time (timeline);
gdouble d = clutter_timeline_get_duration (timeline);
gdouble p = t / (d / 2);
if (p < 1)
@ -673,9 +669,7 @@ clutter_ease_in_quart (ClutterAlpha *alpha,
gpointer dummy G_GNUC_UNUSED)
{
ClutterTimeline *timeline = alpha->priv->timeline;
gdouble t = clutter_timeline_get_current_frame (timeline);
gdouble d = clutter_timeline_get_n_frames (timeline);
gdouble p = t / d;
gdouble p = clutter_timeline_get_progress (timeline);
return p * p * p * p;
}
@ -685,8 +679,8 @@ clutter_ease_out_quart (ClutterAlpha *alpha,
gpointer dummy G_GNUC_UNUSED)
{
ClutterTimeline *timeline = alpha->priv->timeline;
gdouble t = clutter_timeline_get_current_frame (timeline);
gdouble d = clutter_timeline_get_n_frames (timeline);
gdouble t = clutter_timeline_get_elapsed_time (timeline);
gdouble d = clutter_timeline_get_duration (timeline);
gdouble p = t / d - 1;
return -1.0 * (p * p * p * p - 1);
@ -697,8 +691,8 @@ clutter_ease_in_out_quart (ClutterAlpha *alpha,
gpointer dummy G_GNUC_UNUSED)
{
ClutterTimeline *timeline = alpha->priv->timeline;
gdouble t = clutter_timeline_get_current_frame (timeline);
gdouble d = clutter_timeline_get_n_frames (timeline);
gdouble t = clutter_timeline_get_elapsed_time (timeline);
gdouble d = clutter_timeline_get_duration (timeline);
gdouble p = t / (d / 2);
if (p < 1)
@ -714,9 +708,7 @@ clutter_ease_in_quint (ClutterAlpha *alpha,
gpointer dummy G_GNUC_UNUSED)
{
ClutterTimeline *timeline = alpha->priv->timeline;
gdouble t = clutter_timeline_get_current_frame (timeline);
gdouble d = clutter_timeline_get_n_frames (timeline);
gdouble p = t / d;
gdouble p = clutter_timeline_get_progress (timeline);
return p * p * p * p * p;
}
@ -726,8 +718,8 @@ clutter_ease_out_quint (ClutterAlpha *alpha,
gpointer dummy G_GNUC_UNUSED)
{
ClutterTimeline *timeline = alpha->priv->timeline;
gdouble t = clutter_timeline_get_current_frame (timeline);
gdouble d = clutter_timeline_get_n_frames (timeline);
gdouble t = clutter_timeline_get_elapsed_time (timeline);
gdouble d = clutter_timeline_get_duration (timeline);
gdouble p = t / d - 1;
return p * p * p * p * p + 1;
@ -738,8 +730,8 @@ clutter_ease_in_out_quint (ClutterAlpha *alpha,
gpointer dummy G_GNUC_UNUSED)
{
ClutterTimeline *timeline = alpha->priv->timeline;
gdouble t = clutter_timeline_get_current_frame (timeline);
gdouble d = clutter_timeline_get_n_frames (timeline);
gdouble t = clutter_timeline_get_elapsed_time (timeline);
gdouble d = clutter_timeline_get_duration (timeline);
gdouble p = t / (d / 2);
if (p < 1)
@ -755,8 +747,8 @@ clutter_ease_in_sine (ClutterAlpha *alpha,
gpointer dummy G_GNUC_UNUSED)
{
ClutterTimeline *timeline = alpha->priv->timeline;
gdouble t = clutter_timeline_get_current_frame (timeline);
gdouble d = clutter_timeline_get_n_frames (timeline);
gdouble t = clutter_timeline_get_elapsed_time (timeline);
gdouble d = clutter_timeline_get_duration (timeline);
return -1.0 * cos (t / d * G_PI_2) + 1.0;
}
@ -766,8 +758,8 @@ clutter_ease_out_sine (ClutterAlpha *alpha,
gpointer dummy G_GNUC_UNUSED)
{
ClutterTimeline *timeline = alpha->priv->timeline;
gdouble t = clutter_timeline_get_current_frame (timeline);
gdouble d = clutter_timeline_get_n_frames (timeline);
gdouble t = clutter_timeline_get_elapsed_time (timeline);
gdouble d = clutter_timeline_get_duration (timeline);
return sin (t / d * G_PI_2);
}
@ -777,8 +769,8 @@ clutter_ease_in_out_sine (ClutterAlpha *alpha,
gpointer dummy G_GNUC_UNUSED)
{
ClutterTimeline *timeline = alpha->priv->timeline;
gdouble t = clutter_timeline_get_current_frame (timeline);
gdouble d = clutter_timeline_get_n_frames (timeline);
gdouble t = clutter_timeline_get_elapsed_time (timeline);
gdouble d = clutter_timeline_get_duration (timeline);
return -0.5 * (cos (G_PI * t / d) - 1);
}
@ -788,8 +780,8 @@ clutter_ease_in_expo (ClutterAlpha *alpha,
gpointer dummy G_GNUC_UNUSED)
{
ClutterTimeline *timeline = alpha->priv->timeline;
gdouble t = clutter_timeline_get_current_frame (timeline);
gdouble d = clutter_timeline_get_n_frames (timeline);
gdouble t = clutter_timeline_get_elapsed_time (timeline);
gdouble d = clutter_timeline_get_duration (timeline);
return (t == 0) ? 0.0 : pow (2, 10 * (t / d - 1));
}
@ -799,8 +791,8 @@ clutter_ease_out_expo (ClutterAlpha *alpha,
gpointer dummy G_GNUC_UNUSED)
{
ClutterTimeline *timeline = alpha->priv->timeline;
gdouble t = clutter_timeline_get_current_frame (timeline);
gdouble d = clutter_timeline_get_n_frames (timeline);
gdouble t = clutter_timeline_get_elapsed_time (timeline);
gdouble d = clutter_timeline_get_duration (timeline);
return (t == d) ? 1.0 : -pow (2, -10 * t / d) + 1;
}
@ -810,8 +802,8 @@ clutter_ease_in_out_expo (ClutterAlpha *alpha,
gpointer dummy G_GNUC_UNUSED)
{
ClutterTimeline *timeline = alpha->priv->timeline;
gdouble t = clutter_timeline_get_current_frame (timeline);
gdouble d = clutter_timeline_get_n_frames (timeline);
gdouble t = clutter_timeline_get_elapsed_time (timeline);
gdouble d = clutter_timeline_get_duration (timeline);
gdouble p;
if (t == 0)
@ -835,9 +827,7 @@ clutter_ease_in_circ (ClutterAlpha *alpha,
gpointer dummy G_GNUC_UNUSED)
{
ClutterTimeline *timeline = alpha->priv->timeline;
gdouble t = clutter_timeline_get_current_frame (timeline);
gdouble d = clutter_timeline_get_n_frames (timeline);
gdouble p = t / d;
gdouble p = clutter_timeline_get_progress (timeline);
return -1.0 * (sqrt (1 - p * p) - 1);
}
@ -847,8 +837,8 @@ clutter_ease_out_circ (ClutterAlpha *alpha,
gpointer dummy G_GNUC_UNUSED)
{
ClutterTimeline *timeline = alpha->priv->timeline;
gdouble t = clutter_timeline_get_current_frame (timeline);
gdouble d = clutter_timeline_get_n_frames (timeline);
gdouble t = clutter_timeline_get_elapsed_time (timeline);
gdouble d = clutter_timeline_get_duration (timeline);
gdouble p = t / d - 1;
return sqrt (1 - p * p);
@ -859,8 +849,8 @@ clutter_ease_in_out_circ (ClutterAlpha *alpha,
gpointer dummy G_GNUC_UNUSED)
{
ClutterTimeline *timeline = alpha->priv->timeline;
gdouble t = clutter_timeline_get_current_frame (timeline);
gdouble d = clutter_timeline_get_n_frames (timeline);
gdouble t = clutter_timeline_get_elapsed_time (timeline);
gdouble d = clutter_timeline_get_duration (timeline);
gdouble p = t / (d / 2);
if (p < 1)
@ -876,8 +866,8 @@ clutter_ease_in_elastic (ClutterAlpha *alpha,
gpointer dummy G_GNUC_UNUSED)
{
ClutterTimeline *timeline = alpha->priv->timeline;
gdouble t = clutter_timeline_get_current_frame (timeline);
gdouble d = clutter_timeline_get_n_frames (timeline);
gdouble t = clutter_timeline_get_elapsed_time (timeline);
gdouble d = clutter_timeline_get_duration (timeline);
gdouble p = d * .3;
gdouble s = p / 4;
gdouble q = t / d;
@ -895,8 +885,8 @@ clutter_ease_out_elastic (ClutterAlpha *alpha,
gpointer dummy G_GNUC_UNUSED)
{
ClutterTimeline *timeline = alpha->priv->timeline;
gdouble t = clutter_timeline_get_current_frame (timeline);
gdouble d = clutter_timeline_get_n_frames (timeline);
gdouble t = clutter_timeline_get_elapsed_time (timeline);
gdouble d = clutter_timeline_get_duration (timeline);
gdouble p = d * .3;
gdouble s = p / 4;
gdouble q = t / d;
@ -912,8 +902,8 @@ clutter_ease_in_out_elastic (ClutterAlpha *alpha,
gpointer dummy G_GNUC_UNUSED)
{
ClutterTimeline *timeline = alpha->priv->timeline;
gdouble t = clutter_timeline_get_current_frame (timeline);
gdouble d = clutter_timeline_get_n_frames (timeline);
gdouble t = clutter_timeline_get_elapsed_time (timeline);
gdouble d = clutter_timeline_get_duration (timeline);
gdouble p = d * (.3 * 1.5);
gdouble s = p / 4;
gdouble q = t / (d / 2);
@ -942,9 +932,7 @@ clutter_ease_in_back (ClutterAlpha *alpha,
gpointer dummy G_GNUC_UNUSED)
{
ClutterTimeline *timeline = alpha->priv->timeline;
gdouble t = clutter_timeline_get_current_frame (timeline);
gdouble d = clutter_timeline_get_n_frames (timeline);
gdouble p = t / d;
gdouble p = clutter_timeline_get_progress (timeline);
return p * p * ((1.70158 + 1) * p - 1.70158);
}
@ -954,8 +942,8 @@ clutter_ease_out_back (ClutterAlpha *alpha,
gpointer dummy G_GNUC_UNUSED)
{
ClutterTimeline *timeline = alpha->priv->timeline;
gdouble t = clutter_timeline_get_current_frame (timeline);
gdouble d = clutter_timeline_get_n_frames (timeline);
gdouble t = clutter_timeline_get_elapsed_time (timeline);
gdouble d = clutter_timeline_get_duration (timeline);
gdouble p = t / d - 1;
return p * p * ((1.70158 + 1) * p + 1.70158) + 1;
@ -966,8 +954,8 @@ clutter_ease_in_out_back (ClutterAlpha *alpha,
gpointer dummy G_GNUC_UNUSED)
{
ClutterTimeline *timeline = alpha->priv->timeline;
gdouble t = clutter_timeline_get_current_frame (timeline);
gdouble d = clutter_timeline_get_n_frames (timeline);
gdouble t = clutter_timeline_get_elapsed_time (timeline);
gdouble d = clutter_timeline_get_duration (timeline);
gdouble p = t / (d / 2);
gdouble s = 1.70158 * 1.525;
@ -1019,8 +1007,8 @@ clutter_ease_in_bounce (ClutterAlpha *alpha,
gpointer dummy G_GNUC_UNUSED)
{
ClutterTimeline *timeline = alpha->priv->timeline;
gdouble t = clutter_timeline_get_current_frame (timeline);
gdouble d = clutter_timeline_get_n_frames (timeline);
gdouble t = clutter_timeline_get_elapsed_time (timeline);
gdouble d = clutter_timeline_get_duration (timeline);
return ease_in_bounce_internal (t, d);
}
@ -1030,8 +1018,8 @@ clutter_ease_out_bounce (ClutterAlpha *alpha,
gpointer dummy G_GNUC_UNUSED)
{
ClutterTimeline *timeline = alpha->priv->timeline;
gdouble t = clutter_timeline_get_current_frame (timeline);
gdouble d = clutter_timeline_get_n_frames (timeline);
gdouble t = clutter_timeline_get_elapsed_time (timeline);
gdouble d = clutter_timeline_get_duration (timeline);
return ease_out_bounce_internal (t, d);
}
@ -1041,8 +1029,8 @@ clutter_ease_in_out_bounce (ClutterAlpha *alpha,
gpointer dummy G_GNUC_UNUSED)
{
ClutterTimeline *timeline = alpha->priv->timeline;
gdouble t = clutter_timeline_get_current_frame (timeline);
gdouble d = clutter_timeline_get_n_frames (timeline);
gdouble t = clutter_timeline_get_elapsed_time (timeline);
gdouble d = clutter_timeline_get_duration (timeline);
if (t < d / 2)
return ease_in_bounce_internal (t * 2, d) * 0.5;

File diff suppressed because it is too large Load Diff

View File

@ -112,17 +112,12 @@ struct _ClutterTimelineClass
GType clutter_timeline_get_type (void) G_GNUC_CONST;
ClutterTimeline *clutter_timeline_new (guint n_frames,
guint fps);
ClutterTimeline *clutter_timeline_new_for_duration (guint msecs);
ClutterTimeline *clutter_timeline_new (guint msecs);
ClutterTimeline *clutter_timeline_clone (ClutterTimeline *timeline);
guint clutter_timeline_get_duration (ClutterTimeline *timeline);
void clutter_timeline_set_duration (ClutterTimeline *timeline,
guint msecs);
guint clutter_timeline_get_speed (ClutterTimeline *timeline);
void clutter_timeline_set_speed (ClutterTimeline *timeline,
guint fps);
ClutterTimelineDirection clutter_timeline_get_direction (ClutterTimeline *timeline);
void clutter_timeline_set_direction (ClutterTimeline *timeline,
ClutterTimelineDirection direction);
@ -134,32 +129,25 @@ void clutter_timeline_set_loop (ClutterTimeline *timeli
gboolean clutter_timeline_get_loop (ClutterTimeline *timeline);
void clutter_timeline_rewind (ClutterTimeline *timeline);
void clutter_timeline_skip (ClutterTimeline *timeline,
guint n_frames);
guint msecs);
void clutter_timeline_advance (ClutterTimeline *timeline,
guint frame_num);
gint clutter_timeline_get_current_frame (ClutterTimeline *timeline);
guint msecs);
guint clutter_timeline_get_elapsed_time (ClutterTimeline *timeline);
gdouble clutter_timeline_get_progress (ClutterTimeline *timeline);
CoglFixed clutter_timeline_get_progressx (ClutterTimeline *timeline);
void clutter_timeline_set_n_frames (ClutterTimeline *timeline,
guint n_frames);
guint clutter_timeline_get_n_frames (ClutterTimeline *timeline);
gboolean clutter_timeline_is_playing (ClutterTimeline *timeline);
void clutter_timeline_set_delay (ClutterTimeline *timeline,
guint msecs);
guint clutter_timeline_get_delay (ClutterTimeline *timeline);
guint clutter_timeline_get_delta (ClutterTimeline *timeline,
guint *msecs);
guint clutter_timeline_get_delta (ClutterTimeline *timeline);
void clutter_timeline_add_marker_at_frame (ClutterTimeline *timeline,
const gchar *marker_name,
guint frame_num);
void clutter_timeline_add_marker_at_time (ClutterTimeline *timeline,
const gchar *marker_name,
guint msecs);
void clutter_timeline_remove_marker (ClutterTimeline *timeline,
const gchar *marker_name);
gchar ** clutter_timeline_list_markers (ClutterTimeline *timeline,
gint frame_num,
gint msecs,
gsize *n_markers) G_GNUC_MALLOC;
gboolean clutter_timeline_has_marker (ClutterTimeline *timeline,
const gchar *marker_name);

View File

@ -532,18 +532,13 @@ clutter_stage_add
ClutterTimeline
ClutterTimelineClass
clutter_timeline_new
clutter_timeline_new_for_duration
clutter_timeline_clone
<SUBSECTION>
clutter_timeline_set_speed
clutter_timeline_get_speed
clutter_timeline_set_duration
clutter_timeline_get_duration
clutter_timeline_set_loop
clutter_timeline_get_loop
clutter_timeline_set_n_frames
clutter_timeline_get_n_frames
clutter_timeline_set_delay
clutter_timeline_get_delay
ClutterTimelineDirection
@ -557,14 +552,13 @@ clutter_timeline_stop
clutter_timeline_rewind
clutter_timeline_skip
clutter_timeline_advance
clutter_timeline_get_current_frame
clutter_timeline_get_elapsed_time
clutter_timeline_get_delta
clutter_timeline_get_progress
clutter_timeline_get_progressx
clutter_timeline_is_playing
<SUBSECTION>
clutter_timeline_add_marker_at_frame
clutter_timeline_add_marker_at_time
clutter_timeline_has_marker
clutter_timeline_list_markers

View File

@ -7,10 +7,8 @@ test_conformance_SOURCES = \
test-conform-common.c \
test-conform-common.h \
\
test-timeline-dup-frames.c \
test-timeline-interpolate.c \
test-timeline-rewind.c \
test-timeline-smoothness.c \
test-timeline.c \
test-vertex-buffer-contiguous.c \
test-vertex-buffer-interleved.c \

View File

@ -85,11 +85,8 @@ main (int argc, char **argv)
shared_state->argv_addr = &argv;
TEST_CONFORM_SIMPLE ("/timeline", test_timeline);
TEST_CONFORM_SKIP (!g_test_slow (), "/timeline", test_timeline_dup_frames);
TEST_CONFORM_SKIP (!g_test_slow (), "/timeline", test_timeline_dup_frames);
TEST_CONFORM_SKIP (!g_test_slow (), "/timeline", test_timeline_interpolate);
TEST_CONFORM_SKIP (!g_test_slow (), "/timeline", test_timeline_rewind);
TEST_CONFORM_SKIP (!g_test_slow (), "/timeline", test_timeline_smoothness);
TEST_CONFORM_SIMPLE ("/picking", test_pick);

View File

@ -1,134 +0,0 @@
#include <stdlib.h>
#include <glib.h>
#include <clutter/clutter.h>
#include "test-conform-common.h"
/* We use a nice slow timeline for this test since we
* dont want the timeouts to interpolate the timeline
* forward multiple frames */
#define TEST_TIMELINE_FPS 10
#define TEST_TIMELINE_FRAME_COUNT 20
typedef struct _TestState
{
ClutterTimeline *timeline;
gint prev_frame;
gint completion_count;
gint passed;
guint source_id;
GTimeVal prev_tick;
gulong msecs_delta;
} TestState;
static void
new_frame_cb (ClutterTimeline *timeline,
gint frame_num,
TestState *state)
{
gint current_frame = clutter_timeline_get_current_frame (state->timeline);
if (state->prev_frame
!= clutter_timeline_get_current_frame (state->timeline))
{
g_test_message ("timeline previous frame=%-4i "
"actual frame=%-4i (OK)\n",
state->prev_frame,
current_frame);
}
else
{
g_test_message ("timeline previous frame=%-4i "
"actual frame=%-4i (FAILED)\n",
state->prev_frame,
current_frame);
state->passed = FALSE;
}
state->prev_frame = current_frame;
}
static void
completed_cb (ClutterTimeline *timeline,
TestState *state)
{
state->completion_count++;
if (state->completion_count == 2)
{
if (state->passed)
{
g_test_message ("Passed\n");
clutter_main_quit ();
}
else
{
g_test_message ("Failed\n");
exit (EXIT_FAILURE);
}
}
}
static gboolean
frame_tick (gpointer data)
{
TestState *state = data;
GTimeVal cur_tick = { 0, };
gulong msecs;
g_get_current_time (&cur_tick);
if (state->prev_tick.tv_sec == 0)
state->prev_tick = cur_tick;
msecs = (cur_tick.tv_sec - state->prev_tick.tv_sec) * 1000
+ (cur_tick.tv_usec - state->prev_tick.tv_usec) / 1000;
if (clutter_timeline_is_playing (state->timeline))
clutter_timeline_advance_delta (state->timeline, msecs);
state->msecs_delta = msecs;
state->prev_tick = cur_tick;
return TRUE;
}
void
test_timeline_dup_frames (TestConformSimpleFixture *fixture,
gconstpointer data)
{
TestState state;
state.timeline =
clutter_timeline_new (TEST_TIMELINE_FRAME_COUNT,
TEST_TIMELINE_FPS);
clutter_timeline_set_loop (state.timeline, TRUE);
g_signal_connect (G_OBJECT(state.timeline),
"new-frame",
G_CALLBACK(new_frame_cb),
&state);
g_signal_connect (G_OBJECT(state.timeline),
"completed",
G_CALLBACK(completed_cb),
&state);
state.prev_frame = -1;
state.completion_count = 0;
state.passed = TRUE;
state.prev_tick.tv_sec = 0;
state.prev_tick.tv_usec = 0;
state.msecs_delta = 0;
state.source_id =
clutter_threads_add_frame_source (60, frame_tick, &state);
clutter_timeline_start (state.timeline);
clutter_main();
g_source_remove (state.source_id);
g_object_unref (state.timeline);
}

View File

@ -9,7 +9,7 @@
* will interpolate the number frames that should have
* passed between timeouts. */
#define TEST_TIMELINE_FPS 1000
#define TEST_TIMELINE_FRAME_COUNT 5000
#define TEST_TIMELINE_DURATION 5000
/* We are at the mercy of the system scheduler so this
* may not be a very reliable tolerance. */
@ -42,7 +42,7 @@ new_frame_cb (ClutterTimeline *timeline,
g_get_current_time (&current_time);
current_frame = clutter_timeline_get_current_frame (state->timeline);
current_frame = clutter_timeline_get_elapsed_time (state->timeline);
msec_diff = (current_time.tv_sec - state->start_time.tv_sec) * 1000;
msec_diff += (current_time.tv_usec - state->start_time.tv_usec)/1000;
@ -50,13 +50,13 @@ new_frame_cb (ClutterTimeline *timeline,
/* If we expect to have interpolated past the end of the timeline
* we keep track of the overflow so we can determine when
* the next timeout will happen. We then clip expected_frames
* to TEST_TIMELINE_FRAME_COUNT since clutter-timeline
* to TEST_TIMELINE_DURATION since clutter-timeline
* semantics guaranty this frame is always signaled before
* looping */
if (state->expected_frame > TEST_TIMELINE_FRAME_COUNT)
if (state->expected_frame > TEST_TIMELINE_DURATION)
{
loop_overflow = state->expected_frame - TEST_TIMELINE_FRAME_COUNT;
state->expected_frame = TEST_TIMELINE_FRAME_COUNT;
loop_overflow = state->expected_frame - TEST_TIMELINE_DURATION;
state->expected_frame = TEST_TIMELINE_DURATION;
}
if (current_frame >= (state->expected_frame-TEST_ERROR_TOLERANCE)
@ -99,10 +99,10 @@ new_frame_cb (ClutterTimeline *timeline,
g_usleep (1000000);
}
if (current_frame >= TEST_TIMELINE_FRAME_COUNT)
if (current_frame >= TEST_TIMELINE_DURATION)
{
state->expected_frame += loop_overflow;
state->expected_frame -= TEST_TIMELINE_FRAME_COUNT;
state->expected_frame -= TEST_TIMELINE_DURATION;
g_test_message ("End of timeline reached: "
"Wrapping expected frame too %i\n",
state->expected_frame);
@ -165,8 +165,7 @@ test_timeline_interpolate (TestConformSimpleFixture *fixture,
TestState state;
state.timeline =
clutter_timeline_new (TEST_TIMELINE_FRAME_COUNT,
TEST_TIMELINE_FPS);
clutter_timeline_new (TEST_TIMELINE_DURATION);
clutter_timeline_set_loop (state.timeline, TRUE);
g_signal_connect (G_OBJECT(state.timeline),
"new-frame",

View File

@ -4,8 +4,7 @@
#include "test-conform-common.h"
#define TEST_TIMELINE_FPS 10
#define TEST_TIMELINE_FRAME_COUNT 5
#define TEST_TIMELINE_DURATION 500
#define TEST_WATCHDOG_KICK_IN_SECONDS 10
typedef struct _TestState
@ -42,9 +41,9 @@ new_frame_cb (ClutterTimeline *timeline,
gint frame_num,
TestState *state)
{
gint current_frame = clutter_timeline_get_current_frame (timeline);
gint elapsed_time = clutter_timeline_get_elapsed_time (timeline);
if (current_frame == TEST_TIMELINE_FRAME_COUNT)
if (elapsed_time == TEST_TIMELINE_DURATION)
{
g_test_message ("new-frame signal recieved (end of timeline)\n");
g_test_message ("Rewinding timeline\n");
@ -53,7 +52,7 @@ new_frame_cb (ClutterTimeline *timeline,
}
else
{
if (current_frame == 0)
if (elapsed_time == 0)
{
g_test_message ("new-frame signal recieved (start of timeline)\n");
}
@ -101,8 +100,7 @@ test_timeline_rewind (TestConformSimpleFixture *fixture,
TestState state;
state.timeline =
clutter_timeline_new (TEST_TIMELINE_FRAME_COUNT,
TEST_TIMELINE_FPS);
clutter_timeline_new (TEST_TIMELINE_DURATION);
g_signal_connect (G_OBJECT(state.timeline),
"new-frame",
G_CALLBACK(new_frame_cb),

View File

@ -1,147 +0,0 @@
#include <stdlib.h>
#include <glib.h>
#include <clutter/clutter.h>
#include "test-conform-common.h"
#define TEST_TIMELINE_FPS 10
#define TEST_TIMELINE_FRAME_COUNT 20
#define TEST_ERROR_TOLERANCE 5
typedef struct _TestState
{
ClutterTimeline *timeline;
GTimeVal start_time;
GTimeVal prev_frame_time;
guint frame;
gint completion_count;
gint passed;
guint source_id;
GTimeVal prev_tick;
gulong msecs_delta;
} TestState;
static void
new_frame_cb (ClutterTimeline *timeline,
gint frame_num,
TestState *state)
{
GTimeVal current_time;
glong total_elapsed_ms;
glong frame_elapsed_ms = 0;
gchar *bump = "";
g_get_current_time (&current_time);
total_elapsed_ms = (current_time.tv_sec - state->start_time.tv_sec) * 1000;
total_elapsed_ms += (current_time.tv_usec - state->start_time.tv_usec)/1000;
if (state->frame>0)
{
frame_elapsed_ms =
(current_time.tv_sec - state->prev_frame_time.tv_sec) * 1000;
frame_elapsed_ms +=
(current_time.tv_usec - state->prev_frame_time.tv_usec)/1000;
if (ABS(frame_elapsed_ms - (1000/TEST_TIMELINE_FPS))
> TEST_ERROR_TOLERANCE)
{
state->passed = FALSE;
bump = " (BUMP)";
}
}
g_test_message ("timeline frame=%-2d total elapsed=%-4li(ms) "
"since last frame=%-4li(ms)%s\n",
clutter_timeline_get_current_frame(state->timeline),
total_elapsed_ms,
frame_elapsed_ms,
bump);
state->prev_frame_time = current_time;
state->frame++;
}
static void
completed_cb (ClutterTimeline *timeline,
TestState *state)
{
state->completion_count++;
if (state->completion_count == 2)
{
if (state->passed)
{
g_test_message ("Passed\n");
clutter_main_quit ();
}
else
{
g_test_message ("Failed\n");
exit (EXIT_FAILURE);
}
}
}
static gboolean
frame_tick (gpointer data)
{
TestState *state = data;
GTimeVal cur_tick = { 0, };
gulong msecs;
g_get_current_time (&cur_tick);
if (state->prev_tick.tv_sec == 0)
state->prev_tick = cur_tick;
msecs = (cur_tick.tv_sec - state->prev_tick.tv_sec) * 1000
+ (cur_tick.tv_usec - state->prev_tick.tv_usec) / 1000;
if (clutter_timeline_is_playing (state->timeline))
clutter_timeline_advance_delta (state->timeline, msecs);
state->msecs_delta = msecs;
state->prev_tick = cur_tick;
return TRUE;
}
void
test_timeline_smoothness (TestConformSimpleFixture *fixture,
gconstpointer data)
{
TestState state;
state.timeline =
clutter_timeline_new (TEST_TIMELINE_FRAME_COUNT,
TEST_TIMELINE_FPS);
clutter_timeline_set_loop (state.timeline, TRUE);
g_signal_connect (G_OBJECT(state.timeline),
"new-frame",
G_CALLBACK(new_frame_cb),
&state);
g_signal_connect (G_OBJECT(state.timeline),
"completed",
G_CALLBACK(completed_cb),
&state);
state.frame = 0;
state.completion_count = 0;
state.passed = TRUE;
state.prev_tick.tv_sec = 0;
state.prev_tick.tv_usec = 0;
state.msecs_delta = 0;
state.source_id =
clutter_threads_add_frame_source (60, frame_tick, &state);
g_get_current_time (&state.start_time);
clutter_timeline_start (state.timeline);
clutter_main();
g_source_remove (state.source_id);
g_object_unref (state.timeline);
}

View File

@ -15,6 +15,7 @@
for. */
#define FRAME_COUNT 10
#define FPS 30
typedef struct _TimelineData TimelineData;
@ -53,13 +54,21 @@ timeline_complete_cb (ClutterTimeline *timeline,
static void
timeline_new_frame_cb (ClutterTimeline *timeline,
gint frame_no,
gint msec,
TimelineData *data)
{
/* Calculate an approximate frame number from the duration with
rounding */
int frame_no = ((msec * FRAME_COUNT + (FRAME_COUNT * 1000 / FPS) / 2)
/ (FRAME_COUNT * 1000 / FPS));
if (g_test_verbose ())
g_print ("%i: Doing frame %d, delta = %i\n",
data->timeline_num, frame_no,
clutter_timeline_get_delta (timeline, NULL));
clutter_timeline_get_delta (timeline));
g_assert (frame_no >= 0 && frame_no <= FRAME_COUNT);
data->frame_hit_count[frame_no]++;
}
@ -72,7 +81,7 @@ timeline_marker_reached_cb (ClutterTimeline *timeline,
if (g_test_verbose ())
g_print ("%i: Marker '%s' (%d) reached, delta = %i\n",
data->timeline_num, marker_name, frame_num,
clutter_timeline_get_delta (timeline, NULL));
clutter_timeline_get_delta (timeline));
data->markers_hit = g_slist_prepend (data->markers_hit,
g_strdup (marker_name));
}
@ -128,7 +137,7 @@ check_timeline (ClutterTimeline *timeline,
if (check_missed_frames)
{
for (i = 0; i < FRAME_COUNT; i++)
if (data->frame_hit_count[i + frame_offset] != 1)
if (data->frame_hit_count[i + frame_offset] < 1)
missed_frame_count++;
if (missed_frame_count)
@ -230,16 +239,19 @@ test_timeline (TestConformSimpleFixture *fixture,
counter = g_new0 (FrameCounter, 1);
source_id = clutter_threads_add_frame_source (60, frame_tick, counter);
source_id = clutter_threads_add_frame_source (FPS, frame_tick, counter);
timeline_data_init (&data_1, 1);
timeline_1 = clutter_timeline_new (FRAME_COUNT, 30);
clutter_timeline_add_marker_at_frame (timeline_1, "foo", 5);
clutter_timeline_add_marker_at_frame (timeline_1, "bar", 5);
clutter_timeline_add_marker_at_frame (timeline_1, "baz", 5);
clutter_timeline_add_marker_at_frame (timeline_1, "near-end-marker", 9);
clutter_timeline_add_marker_at_frame (timeline_1, "end-marker", 10);
markers = clutter_timeline_list_markers (timeline_1, 5, &n_markers);
timeline_1 = clutter_timeline_new (FRAME_COUNT * 1000 / FPS);
clutter_timeline_add_marker_at_time (timeline_1, "foo", 5 * 1000 / FPS);
clutter_timeline_add_marker_at_time (timeline_1, "bar", 5 * 1000 / FPS);
clutter_timeline_add_marker_at_time (timeline_1, "baz", 5 * 1000 / FPS);
clutter_timeline_add_marker_at_time (timeline_1, "near-end-marker",
9 * 1000 / FPS);
clutter_timeline_add_marker_at_time (timeline_1, "end-marker",
10 * 1000 / FPS);
markers = clutter_timeline_list_markers (timeline_1, 5 * 1000 / FPS,
&n_markers);
g_assert (markers != NULL);
g_assert (n_markers == 3);
g_strfreev (markers);
@ -248,7 +260,7 @@ test_timeline (TestConformSimpleFixture *fixture,
timeline_data_init (&data_2, 2);
timeline_2 = clutter_timeline_clone (timeline_1);
clutter_timeline_add_marker_at_frame (timeline_2, "bar", 2);
clutter_timeline_add_marker_at_time (timeline_2, "bar", 2 * 1000 / FPS);
markers = clutter_timeline_list_markers (timeline_2, -1, &n_markers);
g_assert (markers != NULL);
g_assert (n_markers == 1);
@ -260,10 +272,12 @@ test_timeline (TestConformSimpleFixture *fixture,
timeline_data_init (&data_3, 3);
timeline_3 = clutter_timeline_clone (timeline_1);
clutter_timeline_set_direction (timeline_3, CLUTTER_TIMELINE_BACKWARD);
clutter_timeline_add_marker_at_frame (timeline_3, "foo", 5);
clutter_timeline_add_marker_at_frame (timeline_3, "baz", 8);
clutter_timeline_add_marker_at_frame (timeline_3, "near-end-marker", 1);
clutter_timeline_add_marker_at_frame (timeline_3, "end-marker", 0);
clutter_timeline_add_marker_at_time (timeline_3, "foo", 5 * 1000 / FPS);
clutter_timeline_add_marker_at_time (timeline_3, "baz", 8 * 1000 / FPS);
clutter_timeline_add_marker_at_time (timeline_3, "near-end-marker",
1 * 1000 / FPS);
clutter_timeline_add_marker_at_time (timeline_3, "end-marker",
0 * 1000 / FPS);
counter->timelines = g_slist_prepend (counter->timelines, timeline_3);

View File

@ -105,12 +105,13 @@ frame_cb (ClutterTimeline *timeline,
{
SuperOH *oh = data;
gint i;
float rotation = clutter_timeline_get_progress (timeline) * 360.0f;
/* Rotate everything clockwise about stage center*/
clutter_actor_set_rotation (oh->group,
CLUTTER_Z_AXIS,
frame_num,
rotation,
oh->stage_width / 2,
oh->stage_height / 2,
0);
@ -126,7 +127,7 @@ frame_cb (ClutterTimeline *timeline,
*/
clutter_actor_set_rotation (oh->hand[i],
CLUTTER_Z_AXIS,
-6.0 * frame_num,
-6.0 * rotation,
0, 0, 0);
}
}
@ -178,7 +179,7 @@ test_actor_clone_main (int argc, char *argv[])
oh = g_new (SuperOH, 1);
/* Create a timeline to manage animation */
oh->timeline = clutter_timeline_new (360, 60);
oh->timeline = clutter_timeline_new (6000);
clutter_timeline_set_loop (oh->timeline, TRUE);
/* fire a callback for frame change */

View File

@ -98,17 +98,18 @@ input_cb (ClutterActor *stage,
/* Timeline handler */
static void
frame_cb (ClutterTimeline *timeline,
gint frame_num,
gint msecs,
gpointer data)
{
SuperOH *oh = data;
gint i;
float rotation = clutter_timeline_get_progress (timeline) * 360.0f;
/* Rotate everything clockwise about stage center*/
clutter_actor_set_rotation (oh->group,
CLUTTER_Z_AXIS,
frame_num,
rotation,
oh->stage_width / 2,
oh->stage_height / 2,
0);
@ -120,7 +121,7 @@ frame_cb (ClutterTimeline *timeline,
*/
clutter_actor_set_rotation (oh->hand[i],
CLUTTER_Z_AXIS,
-6.0 * frame_num,
-6.0 * rotation,
0, 0, 0);
}
}
@ -172,7 +173,7 @@ test_actors_main (int argc, char *argv[])
oh->stage = stage;
/* Create a timeline to manage animation */
oh->timeline = clutter_timeline_new (360, 60);
oh->timeline = clutter_timeline_new (6000);
clutter_timeline_set_loop (oh->timeline, TRUE);
/* fire a callback for frame change */

View File

@ -164,7 +164,7 @@ test_behave_main (int argc, char *argv[])
clutter_container_add (CLUTTER_CONTAINER (group), rect, hand, NULL);
/* Make a timeline */
timeline = clutter_timeline_new_for_duration (4000); /* num frames, fps */
timeline = clutter_timeline_new (4000); /* num frames, fps */
clutter_timeline_set_loop (timeline, TRUE);
g_signal_connect (timeline,
"completed", G_CALLBACK (timeline_completed),

View File

@ -9,8 +9,6 @@
#include <clutter/clutter.h>
#include <cogl/cogl.h>
#define TIMELINE_FRAME_COUNT 200
typedef struct _TestMultiLayerMaterialState
{
ClutterActor *group;
@ -45,9 +43,7 @@ material_rectangle_paint (ClutterActor *actor, gpointer data)
TestMultiLayerMaterialState *state = data;
cogl_set_source (state->material);
cogl_rectangle_with_multitexture_coords (0, 0,
TIMELINE_FRAME_COUNT,
TIMELINE_FRAME_COUNT,
cogl_rectangle_with_multitexture_coords (0, 0, 200, 200,
state->tex_coords,
12);
}
@ -119,7 +115,7 @@ test_cogl_multitexture_main (int argc, char *argv[])
clutter_container_add_actor (CLUTTER_CONTAINER(stage),
state->group);
timeline = clutter_timeline_new (TIMELINE_FRAME_COUNT, 26 /* fps */);
timeline = clutter_timeline_new (7692);
clutter_timeline_set_loop (timeline, TRUE);
g_signal_connect (timeline, "new-frame", G_CALLBACK (frame_cb), state);

View File

@ -81,8 +81,8 @@ static PaintFunc paint_func []=
static void
paint_cb (ClutterActor *self, ClutterTimeline *tl)
{
gint paint_index = (clutter_timeline_get_current_frame (tl)
% G_N_ELEMENTS (paint_func));
gint paint_index = (clutter_timeline_get_progress (tl)
* G_N_ELEMENTS (paint_func));
cogl_push_matrix ();
@ -108,8 +108,7 @@ test_cogl_primitives_main (int argc, char *argv[])
clutter_init(&argc, &argv);
/* One frame for each paint function at one frame per second */
tl = clutter_timeline_new (G_N_ELEMENTS (paint_func), 1);
tl = clutter_timeline_new (G_N_ELEMENTS (paint_func) * 1000);
clutter_timeline_set_loop (tl, TRUE);
clutter_timeline_start (tl);

View File

@ -375,7 +375,7 @@ test_cogl_tex_polygon_main (int argc, char *argv[])
clutter_container_add_actor (CLUTTER_CONTAINER (stage), coglbox);
/* Timeline for animation */
timeline = clutter_timeline_new (360, 60); /* num frames, fps */
timeline = clutter_timeline_new (6000);
clutter_timeline_set_loop (timeline, TRUE);
g_signal_connect (timeline, "new-frame", G_CALLBACK (frame_cb), coglbox);
clutter_timeline_start (timeline);

View File

@ -198,7 +198,7 @@ test_cogl_tex_tile_main (int argc, char *argv[])
clutter_container_add_actor (CLUTTER_CONTAINER (stage), coglbox);
/* Timeline for animation */
timeline = clutter_timeline_new (360, 60); /* num frames, fps */
timeline = clutter_timeline_new (6000); /* num frames, fps */
clutter_timeline_set_loop (timeline, TRUE);
g_signal_connect (timeline, "new-frame", G_CALLBACK (frame_cb), coglbox);
clutter_timeline_start (timeline);

View File

@ -59,8 +59,7 @@ frame_cb (ClutterTimeline *timeline,
TestState *state)
{
guint x, y;
guint n_frames = clutter_timeline_get_n_frames (timeline);
float period_progress = ((float)frame_num / (float)n_frames) * 2.0 * G_PI;
float period_progress = clutter_timeline_get_progress (timeline);
float period_progress_sin = sinf (period_progress);
float wave_shift = period_progress * WAVE_SPEED;
float ripple_shift = period_progress * RIPPLE_SPEED;
@ -354,7 +353,7 @@ test_cogl_vertex_buffer_main (int argc, char *argv[])
(stage_geom.width / 2.0) - (dummy_width / 2.0),
(stage_geom.height / 2.0) - (dummy_height / 2.0));
state.timeline = clutter_timeline_new (360, 60);
state.timeline = clutter_timeline_new (6000);
clutter_timeline_set_loop (state.timeline, TRUE);
g_signal_connect (state.timeline,
"new-frame",

View File

@ -157,7 +157,7 @@ test_depth_main (int argc, char *argv[])
clutter_container_add_actor (CLUTTER_CONTAINER (stage), label);
/* 3 seconds, at 60 fps */
timeline = clutter_timeline_new (180, 60);
timeline = clutter_timeline_new (3000);
g_signal_connect (timeline,
"completed", G_CALLBACK (timeline_completed),
NULL);

View File

@ -755,7 +755,7 @@ test_layout_main (int argc, char *argv[])
clutter_color_from_string (&bg_color, "Red");
main_timeline = clutter_timeline_new_for_duration (2000);
main_timeline = clutter_timeline_new (2000);
clutter_timeline_set_loop (main_timeline, TRUE);
g_signal_connect (main_timeline, "new-frame",
G_CALLBACK (relayout_on_frame),

View File

@ -72,7 +72,7 @@ on_button_press (ClutterActor *actor,
win_title = g_strdup_printf ("Stage:%p", new_stage);
clutter_stage_set_title (CLUTTER_STAGE(new_stage), win_title);
timeline = clutter_timeline_new_for_duration (2000);
timeline = clutter_timeline_new (2000);
clutter_timeline_set_loop (timeline, TRUE);
alpha = clutter_alpha_new_full (timeline, CLUTTER_LINEAR);

View File

@ -88,17 +88,18 @@ input_cb (ClutterStage *stage,
/* Timeline handler */
static void
frame_cb (ClutterTimeline *timeline,
gint frame_num,
gint msecs,
gpointer data)
{
SuperOH *oh = (SuperOH *)data;
gint i;
SuperOH *oh = (SuperOH *)data;
gint i;
float rotation = clutter_timeline_get_progress (timeline) * 360.0f;
/* Rotate everything clockwise about stage center*/
clutter_actor_set_rotation (CLUTTER_ACTOR (oh->group),
CLUTTER_Z_AXIS,
frame_num,
rotation,
CLUTTER_STAGE_WIDTH () / 2,
CLUTTER_STAGE_HEIGHT () / 2,
0);
@ -116,7 +117,7 @@ frame_cb (ClutterTimeline *timeline,
* unit based functions to fix.
*/
clutter_actor_set_rotation (oh->hand[i], CLUTTER_Z_AXIS,
- 6.0 * frame_num, 0, 0, 0);
- 6.0 * rotation, 0, 0, 0);
}
}
@ -208,7 +209,7 @@ test_paint_wrapper_main (int argc, char *argv[])
oh = g_new(SuperOH, 1);
/* Create a timeline to manage animation */
timeline = clutter_timeline_new (360, 60); /* num frames, fps */
timeline = clutter_timeline_new (6000);
clutter_timeline_set_loop (timeline, TRUE);
/* fire a callback for frame change */

View File

@ -233,7 +233,7 @@ test_pixmap_main (int argc, char **argv)
clutter_actor_set_position (stage, 0, 150);
clutter_stage_set_color (CLUTTER_STAGE (stage), &gry);
timeline = clutter_timeline_new (60*5, 60);
timeline = clutter_timeline_new (5000);
g_signal_connect (timeline,
"completed", G_CALLBACK (timeline_completed),
NULL);

View File

@ -44,7 +44,7 @@ test_rotate_main (int argc, char *argv[])
clutter_container_add_actor (CLUTTER_CONTAINER (stage), label);
/* Make a timeline */
timeline = clutter_timeline_new (200, 26); /* num frames, fps */
timeline = clutter_timeline_new (7692); /* num frames, fps */
clutter_timeline_set_loop (timeline, TRUE);
/* Set an alpha func to power behaviour */

View File

@ -86,7 +86,7 @@ test_scale_main (int argc, char *argv[])
clutter_group_add (CLUTTER_GROUP (stage), rect);
timeline = clutter_timeline_new_for_duration (750);
timeline = clutter_timeline_new (750);
alpha = clutter_alpha_new_with_func (timeline,
my_ramp_func,
NULL, NULL);

View File

@ -61,28 +61,28 @@ test_score_main (int argc, char **argv)
clutter_init (&argc, &argv);
timeline_1 = clutter_timeline_new_for_duration (1000);
timeline_1 = clutter_timeline_new (1000);
g_object_set_data_full (G_OBJECT (timeline_1),
"timeline-name", g_strdup ("Timeline 1"),
g_free);
timeline_2 = clutter_timeline_new_for_duration (1000);
timeline_2 = clutter_timeline_new (1000);
clutter_timeline_add_marker_at_time (timeline_2, "foo", 500);
g_object_set_data_full (G_OBJECT (timeline_2),
"timeline-name", g_strdup ("Timeline 2"),
g_free);
timeline_3 = clutter_timeline_new_for_duration (1000);
timeline_3 = clutter_timeline_new (1000);
g_object_set_data_full (G_OBJECT (timeline_3),
"timeline-name", g_strdup ("Timeline 3"),
g_free);
timeline_4 = clutter_timeline_new_for_duration (1000);
timeline_4 = clutter_timeline_new (1000);
g_object_set_data_full (G_OBJECT (timeline_4),
"timeline-name", g_strdup ("Timeline 4"),
g_free);
timeline_5 = clutter_timeline_new_for_duration (1000);
timeline_5 = clutter_timeline_new (1000);
g_object_set_data_full (G_OBJECT (timeline_5),
"timeline-name", g_strdup ("Timeline 5"),
g_free);

View File

@ -61,7 +61,7 @@ static gboolean task (gpointer foo)
for (i=0; i<3; i++)
{
timeline = clutter_timeline_new (60*5, 60);
timeline = clutter_timeline_new (5000);
alpha = clutter_alpha_new_full (timeline, CLUTTER_LINEAR);
depth_behavior = clutter_behaviour_depth_new (alpha, -2500, 0);
clutter_behaviour_apply (depth_behavior, image[i]);

View File

@ -77,7 +77,7 @@ test_texture_quality_main (int argc, char *argv[])
(clutter_actor_get_height (stage) - clutter_actor_get_height (image))/2);
clutter_container_add (CLUTTER_CONTAINER (stage), image, NULL);
timeline = clutter_timeline_new (60*5, 60);
timeline = clutter_timeline_new (5000);
g_signal_connect (timeline,
"completed", G_CALLBACK (timeline_completed),
NULL);

View File

@ -211,7 +211,7 @@ test_threads_main (int argc, char *argv[])
rect, progress_rect,
NULL);
timeline = clutter_timeline_new (150, 50);
timeline = clutter_timeline_new (3000);
clutter_timeline_set_loop (timeline, TRUE);
alpha = clutter_alpha_new_full (timeline, CLUTTER_LINEAR);

View File

@ -36,7 +36,7 @@ test_viewport_main (int argc, char *argv[])
clutter_container_add_actor (CLUTTER_CONTAINER (stage), hand);
/* Make a timeline */
timeline = clutter_timeline_new (200, 26); /* num frames, fps */
timeline = clutter_timeline_new (7692);
clutter_timeline_set_loop (timeline, TRUE);
/* Set an alpha func to power behaviour */