diff --git a/ChangeLog b/ChangeLog index 8616b29a8..c2eca9f05 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2007-12-10 Tomas Frydrych + + * tests/test-viewport.c: + * tests/Makefile.am: + Added a simple viewport test. + +2007-12-10 Tomas Frydrych + + * clutter/clutter-actor.c: + (_clutter_actor_apply_modelview_transform): + Moved offset translation after rotation so that rotation coords + are also relative to the offset point. + + 2007-12-09 Emmanuele Bassi * tests/test-events.c (input_cb): @@ -26,13 +40,6 @@ (clutter_actor_get_positionu): Add unit-based accessors to the size and position. -2007-12-07 Tomas Frydrych - - * clutter/clutter-actor.c: - (_clutter_actor_apply_modelview_transform): - Moved offset translation after rotation so that rotation coords - are also relative to the offset point. - 2007-12-07 Tomas Frydrych * clutter/clutter-behaviour-ellipse.c: diff --git a/tests/Makefile.am b/tests/Makefile.am index b43156334..ba1b00d45 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -3,7 +3,7 @@ noinst_PROGRAMS = test-textures test-events test-offscreen test-scale \ test-perspective test-rotate test-depth \ test-threads test-timeline test-score test-script \ test-model test-grab test-effects test-fullscreen \ - test-shader test-unproject + test-shader test-unproject test-viewport INCLUDES = -I$(top_srcdir)/ LDADD = $(top_builddir)/clutter/libclutter-@CLUTTER_FLAVOUR@-@CLUTTER_MAJORMINOR@.la @@ -32,5 +32,6 @@ test_script_SOURCES = test-script.c test_model_SOURCES = test-model.c test_effects_SOURCES = test-effects.c test_fullscreen_SOURCES = test-fullscreen.c +test_vieport_SOURCES = test-viewport.c EXTRA_DIST = redhand.png test-script.json diff --git a/tests/test-viewport.c b/tests/test-viewport.c new file mode 100644 index 000000000..7abaecb3f --- /dev/null +++ b/tests/test-viewport.c @@ -0,0 +1,68 @@ +#include +#include +#include + +#include + +#include + +int +main (int argc, char *argv[]) +{ + ClutterTimeline *timeline; + ClutterAlpha *alpha; + ClutterBehaviour *r_behave; + ClutterActor *stage; + ClutterActor *hand; + ClutterColor stage_color = { 0xcc, 0xcc, 0xcc, 0xff }; + GdkPixbuf *pixbuf; + + clutter_init (&argc, &argv); + + stage = clutter_stage_get_default (); + + pixbuf = gdk_pixbuf_new_from_file ("redhand.png", NULL); + + if (!pixbuf) + g_error("pixbuf load failed"); + + clutter_stage_set_color (CLUTTER_STAGE (stage), + &stage_color); + + /* Make a hand */ + hand = clutter_texture_new_from_pixbuf (pixbuf); + clutter_actor_set_position (hand, 300, 200); + clutter_actor_set_clip (hand, 20, 21, 132, 170); + clutter_actor_set_anchor_point (hand, 86, 125); + clutter_actor_show (hand); + clutter_container_add_actor (CLUTTER_CONTAINER (stage), hand); + + /* Make a timeline */ + timeline = clutter_timeline_new (200, 26); /* num frames, fps */ + g_object_set (timeline, "loop", TRUE, NULL); + + /* Set an alpha func to power behaviour - ramp is constant rise/fall */ + alpha = clutter_alpha_new_full (timeline, + CLUTTER_ALPHA_RAMP_INC, + NULL, NULL); + + /* Create a behaviour for that alpha */ + r_behave = clutter_behaviour_rotate_new (alpha, + CLUTTER_Z_AXIS, + CLUTTER_ROTATE_CW, + 0.0, 360.0); + + /* Apply it to our actor */ + clutter_behaviour_apply (r_behave, hand); + + /* start the timeline and thus the animations */ + clutter_timeline_start (timeline); + + clutter_actor_show_all (stage); + + clutter_main(); + + g_object_unref (r_behave); + + return 0; +}