1
0
Fork 0
mutter-performance-source/tests/interactive
Emmanuele Bassi 9799750c03 [animation] Rework animation chaining
In order to chain up animations using clutter_actor_animate() and
friends you have to use an idle handler that guarantees that the
main loop spins at least once after the animation pointer has been
detached from the actor.

This has several drawbacks, first and foremost the fact that the
slice of the main loop for the idle handler might be starved by
other operations, like redrawing. This inevitably leads to tricks
with priorities and the like, contributing to the overall complexity.

Instead, we should guarantee that the animation instance created by
clutter_actor_animate() is valid for the ::completed signal until
it reaches its default handler; after that, the animation is detached
from the actor and destroyed. This means that it's possible to
create a new animation after the first is complete by simply using
g_signal_connect_after().

This unfortunately makes it impossible to keep a reference to the
animation pointer attached to the actor by using g_object_ref(); a
way to "fix" this would be to have a clutter_animation_attach()
and a clutter_animation_detach() pair of methods that allow attaching
any animation to an actor. This might overcomplicate what it is
the simple animation API, though, so it's currently not implemented
and left for future versions.

The test-easing interactive demo has been modified to show how
the animation queuing works by adding a command line switch that
recenters the animated actor once the first animation has ended.
2009-06-15 11:49:33 +01:00
..
Makefile.am Disable single header inclusion for GLib 2009-06-15 11:29:37 +01:00
test-actor-clone.c [tests] Update test-actors (and clones) 2009-06-11 16:26:02 +01:00
test-actors.c [tests] Update test-actors (and clones) 2009-06-11 16:26:02 +01:00
test-animation.c Remove usage of Units and macros 2009-06-04 16:30:30 +01:00
test-behave.c [timeline] Remove the concept of frames from timelines 2009-06-04 13:21:57 +01:00
test-binding-pool.c [tests] Fix a segfault in the binding-pool test 2009-06-11 12:36:41 +01:00
test-clip.c [cogl] Remove max_waste argument from Texture ctors 2009-05-23 19:35:19 +01:00
test-clutter-cairo-flowers.c [stage] Rename fullscreen methods 2009-06-09 14:07:35 +01:00
test-cogl-multitexture.c Merge branch 'timeline-no-fps' into 1.0-integration 2009-06-05 12:20:41 +01:00
test-cogl-offscreen.c Default to a blend function that expects premultiplied colors 2009-06-11 14:17:52 +01:00
test-cogl-primitives.c [timeline] Remove the concept of frames from timelines 2009-06-04 13:21:57 +01:00
test-cogl-tex-convert.c [cogl] Remove max_waste argument from Texture ctors 2009-05-23 19:35:19 +01:00
test-cogl-tex-foreign.c [cogl-handle] Optimize how we define cogl handles 2009-04-02 11:58:43 +01:00
test-cogl-tex-getset.c [cogl] Remove max_waste argument from Texture ctors 2009-05-23 19:35:19 +01:00
test-cogl-tex-polygon.c [tests] Fix the cogl_polygon() interactive test 2009-06-11 16:59:50 +01:00
test-cogl-tex-tile.c [test-cogl-tex-tile] Fix breakages from ClutterFixed removal and timelines 2009-06-12 11:05:26 +01:00
test-cogl-vertex-buffer.c [tests] Fix the VBO interactive test 2009-06-11 16:53:52 +01:00
test-depth.c [fog] Document that fogging only works with opaque or unmultipled colors 2009-06-11 14:17:53 +01:00
test-devices.c Bug 1162 - Re-works the tests/ to use the glib-2.16 unit testing 2008-11-07 19:32:28 +00:00
test-easing.c [animation] Rework animation chaining 2009-06-15 11:49:33 +01:00
test-entry.c Bug 1162 - Re-works the tests/ to use the glib-2.16 unit testing 2008-11-07 19:32:28 +00:00
test-events.c [stage] Rename fullscreen methods 2009-06-09 14:07:35 +01:00
test-fbo.c Remove CloneTexture from the API 2009-01-27 15:18:45 +00:00
test-fullscreen.c [stage] Rename fullscreen methods 2009-06-09 14:07:35 +01:00
test-grab.c Bug 1162 - Re-works the tests/ to use the glib-2.16 unit testing 2008-11-07 19:32:28 +00:00
test-layout.c introspection-friendly ClutterEvent accessors 2009-06-08 12:05:20 +01:00
test-main.c * tests/interactive/test-main.c (main): Allow more than two 2008-11-10 16:30:42 +00:00
test-model.c Bug 1162 - Re-works the tests/ to use the glib-2.16 unit testing 2008-11-07 19:32:28 +00:00
test-multistage.c [timeline] Remove the concept of frames from timelines 2009-06-04 13:21:57 +01:00
test-offscreen.c Bug 1162 - Re-works the tests/ to use the glib-2.16 unit testing 2008-11-07 19:32:28 +00:00
test-paint-wrapper.c [tests] Update test-actors (and clones) 2009-06-11 16:26:02 +01:00
test-perspective.c [stage] Rename fullscreen methods 2009-06-09 14:07:35 +01:00
test-pixmap.c introspection-friendly ClutterEvent accessors 2009-06-08 12:05:20 +01:00
test-project.c Remove usage of Units and macros 2009-06-04 16:30:30 +01:00
test-random-text.c Update the interactive tests to ClutterText 2008-12-11 13:48:01 +00:00
test-rotate.c [timeline] Remove the concept of frames from timelines 2009-06-04 13:21:57 +01:00
test-scale.c [timeline] Remove the concept of frames from timelines 2009-06-04 13:21:57 +01:00
test-score.c [timeline] Remove the concept of frames from timelines 2009-06-04 13:21:57 +01:00
test-script.c Remove usage of the grave accent as quotation mark 2009-03-17 14:13:31 +00:00
test-shader.c Uniformly use floats in Actor properties 2009-06-01 14:57:18 +01:00
test-stage-read-pixels.c Remove Units from the public API 2009-05-06 16:44:47 +01:00
test-text-field.c [units] Rework Units into logical distance value 2009-06-04 16:30:31 +01:00
test-text.c [tests] Update the ClutterText interactive test 2009-01-07 15:54:08 +00:00
test-texture-async.c [texture] Fix error reporting on ::load-finished 2009-06-06 16:13:41 +01:00
test-texture-quality.c [timeline] Remove the concept of frames from timelines 2009-06-04 13:21:57 +01:00
test-textures.c Bug 1162 - Re-works the tests/ to use the glib-2.16 unit testing 2008-11-07 19:32:28 +00:00
test-threads.c introspection-friendly ClutterEvent accessors 2009-06-08 12:05:20 +01:00
test-unproject.c Remove Units from the public API 2009-05-06 16:44:47 +01:00
test-viewport.c [timeline] Remove the concept of frames from timelines 2009-06-04 13:21:57 +01:00
wrapper.sh Bug 1162 - Re-works the tests/ to use the glib-2.16 unit testing 2008-11-07 19:32:28 +00:00