diff --git a/ChangeLog b/ChangeLog index 5d10f6f91..bea0fdbee 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-01-31 Øyvind Kolås + + * tests/test-depth.c: added a box of cloned hands to further expand + the scope of depth testing scenarios exercised by test-depth. + 2008-01-31 Øyvind Kolås * tests/test-depth.c: (timeline_completed): make use of diff --git a/tests/test-depth.c b/tests/test-depth.c index 73983e97f..03084262c 100644 --- a/tests/test-depth.c +++ b/tests/test-depth.c @@ -22,11 +22,58 @@ raise_top (gpointer ignored) return TRUE; } +static ClutterActor * +clone_box (ClutterTexture *original) +{ + guint width, height; + ClutterActor *group; + ClutterActor *clone; + + clutter_actor_get_size (CLUTTER_ACTOR (original), &width, &height); + + group = clutter_group_new (); + clone = clutter_clone_texture_new (original); + clutter_container_add_actor (CLUTTER_CONTAINER (group), clone); + clutter_actor_set_depth (clone, width/2); + + clone = clutter_clone_texture_new (original); + clutter_container_add_actor (CLUTTER_CONTAINER (group), clone); + clutter_actor_set_rotation (clone, CLUTTER_Y_AXIS, 180, width/2, 0, 0); + clutter_actor_set_depth (clone, -width/2); + + clone = clutter_clone_texture_new (original); + clutter_container_add_actor (CLUTTER_CONTAINER (group), clone); + clutter_actor_set_rotation (clone, CLUTTER_Y_AXIS, 90, 0, 0, 0); + clutter_actor_set_depth (clone, width/2); + clutter_actor_set_position (clone, 0, 0); + + clone = clutter_clone_texture_new (original); + clutter_container_add_actor (CLUTTER_CONTAINER (group), clone); + clutter_actor_set_rotation (clone, CLUTTER_Y_AXIS, 90, 0, 0, 0); + clutter_actor_set_depth (clone, width/2); + clutter_actor_set_position (clone, width, 0); + + clone = clutter_clone_texture_new (original); + clutter_container_add_actor (CLUTTER_CONTAINER (group), clone); + clutter_actor_set_rotation (clone, CLUTTER_X_AXIS, 90, 0, 0, 0); + clutter_actor_set_depth (clone, -width/2); + clutter_actor_set_position (clone, 0, height); + + clone = clutter_clone_texture_new (original); + clutter_container_add_actor (CLUTTER_CONTAINER (group), clone); + clutter_actor_set_rotation (clone, CLUTTER_X_AXIS, 90, 0, 0, 0); + clutter_actor_set_depth (clone, -width/2); + clutter_actor_set_position (clone, 0, 0); + + clutter_actor_show_all (group); + return group; +} + static ClutterActor * janus_group (const gchar *front_text, const gchar *back_text) { - ClutterColor slide_color = {0x00, 0x00, 0x00, 0x55}; + ClutterColor slide_color = {0x00, 0x00, 0x00, 0xff}; ClutterColor red = {0xff, 0x00, 0x00, 0xff}; ClutterColor green = {0x00, 0xff, 0x00, 0xff}; ClutterActor *group, *rectangle, *front, *back; @@ -51,21 +98,22 @@ janus_group (const gchar *front_text, clutter_actor_set_size (rectangle, width, height); clutter_actor_set_rotation (back, CLUTTER_Y_AXIS, 180, width/2, 0, 0); - clutter_container_add (group, back, rectangle, front, NULL); + clutter_container_add (CLUTTER_CONTAINER (group), + back, rectangle, front, NULL); clutter_actor_show_all (group); return group; } -int +gint main (int argc, char *argv[]) { ClutterTimeline *timeline; ClutterBehaviour *d_behave; ClutterBehaviour *r_behave; ClutterActor *stage; - ClutterActor *group, *hand, *label, *rect, *janus; + ClutterActor *group, *hand, *label, *rect, *janus, *box; ClutterColor stage_color = { 0xcc, 0xcc, 0xcc, 0xff }; ClutterColor rect_color = { 0, 0, 0, 0x88 }; GdkPixbuf *pixbuf; @@ -92,15 +140,15 @@ main (int argc, char *argv[]) clutter_actor_show (group); label = clutter_label_new_with_text ("Mono 26", "Clutter"); - clutter_actor_set_position (label, 120, 180); + clutter_actor_set_position (label, 120, 200); clutter_actor_show (label); hand = clutter_texture_new_from_pixbuf (pixbuf); - clutter_actor_set_position (hand, 240, 140); + clutter_actor_set_position (hand, 240, 100); clutter_actor_show (hand); rect = clutter_rectangle_new_with_color (&rect_color); - clutter_actor_set_position (rect, 340, 140); + clutter_actor_set_position (rect, 340, 100); clutter_actor_set_size (rect, 200, 200); clutter_actor_show (rect); @@ -119,7 +167,6 @@ main (int argc, char *argv[]) -100, 100); clutter_behaviour_apply (d_behave, label); - /* add two faced actor */ janus = janus_group ("GREEN", "RED"); clutter_container_add_actor (CLUTTER_CONTAINER (stage), janus); @@ -133,6 +180,24 @@ main (int argc, char *argv[]) 0, 360); clutter_behaviour_apply (r_behave, janus); + + /* add hand box */ + box = clone_box (CLUTTER_TEXTURE (hand)); + clutter_container_add_actor (CLUTTER_CONTAINER (stage), box); + clutter_actor_set_position (box, 200, 250); + clutter_actor_set_scale (box, 0.5, 0.5); + clutter_actor_set_rotation (box, CLUTTER_X_AXIS, 45, 0, 0, 0); + clutter_actor_set_opacity (box, 0x44); + + r_behave = clutter_behaviour_rotate_new (clutter_alpha_new_full (timeline, + CLUTTER_ALPHA_RAMP_INC, + NULL, NULL), + CLUTTER_Y_AXIS, + CLUTTER_ROTATE_CW, + 0, 360); + clutter_behaviour_apply (r_behave, box); + + clutter_actor_show (stage); clutter_timeline_start (timeline);