summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLionel Landwerlin <llandwerlin@gmail.com>2015-12-05 23:15:17 +0000
committerLionel Landwerlin <llandwerlin@gmail.com>2015-12-06 23:58:22 +0000
commit25e157ea42eff3bade9d08d7d45309a5a86f7942 (patch)
tree2eddefa69f6905303964538b488365cdd5e83b6d
parent9c26a98a6f16e6a339bd10cf0133930fed1e5d02 (diff)
downloadclutter-25e157ea42eff3bade9d08d7d45309a5a86f7942.tar.gz
test: interactive: port cairo flowers to ClutterCanvas
https://bugzilla.gnome.org/show_bug.cgi?id=759074
-rw-r--r--tests/interactive/test-cairo-flowers.c41
1 files changed, 30 insertions, 11 deletions
diff --git a/tests/interactive/test-cairo-flowers.c b/tests/interactive/test-cairo-flowers.c
index f60a0f36d..2594d686b 100644
--- a/tests/interactive/test-cairo-flowers.c
+++ b/tests/interactive/test-cairo-flowers.c
@@ -25,8 +25,12 @@ Flower;
static ClutterActor *stage = NULL;
-static ClutterActor *
-make_flower_actor (void)
+static gboolean
+draw_flower (ClutterCanvas *canvas,
+ cairo_t *cr,
+ gint width,
+ gint height,
+ gpointer user_data)
{
/* No science here, just a hack from toying */
gint i, j;
@@ -53,18 +57,11 @@ make_flower_actor (void)
gint idx, last_idx = -1;
- ClutterActor *ctex;
- cairo_t *cr;
-
- petal_size = PETAL_MIN + rand() % PETAL_VAR;
+ petal_size = GPOINTER_TO_INT (user_data);
size = petal_size * 8;
n_groups = rand() % 3 + 1;
- ctex = clutter_cairo_texture_new (size, size);
-
- cr = clutter_cairo_texture_create (CLUTTER_CAIRO_TEXTURE (ctex));
-
cairo_set_tolerance (cr, 0.1);
/* Clear */
@@ -133,7 +130,29 @@ make_flower_actor (void)
cairo_arc(cr, 0, 0, petal_size, 0, M_PI * 2);
cairo_fill(cr);
- cairo_destroy(cr);
+ return TRUE;
+}
+
+static ClutterActor *
+make_flower_actor (void)
+{
+ gint petal_size = PETAL_MIN + rand() % PETAL_VAR;
+ gint size = petal_size * 8;
+ ClutterActor *ctex;
+ ClutterContent *canvas;
+
+ canvas = clutter_canvas_new ();
+ g_signal_connect (canvas, "draw",
+ G_CALLBACK (draw_flower), GINT_TO_POINTER (petal_size));
+
+ clutter_canvas_set_size (CLUTTER_CANVAS (canvas), size, size);
+ ctex = g_object_new (CLUTTER_TYPE_ACTOR,
+ "content", canvas,
+ "width", (gfloat) size,
+ "height", (gfloat) size,
+ NULL);
+
+ g_object_unref (canvas);
return ctex;
}