mirror of
https://github.com/brl/mutter.git
synced 2025-02-18 14:14:10 +00:00
test-picking: Don't manually paint the stage
Instead of using an idle handler that synchonously paints the stage by manually calling clutter_actor_paint (stage) the test now uses an idle handler that repeatedly queues a redraw on the stage. do_events is now called from a "paint" signal handler for the stage, and instead of manually determining the fps the test now uses CLUTTER_SHOW_FPS=1 instead.
This commit is contained in:
parent
9a663d8e41
commit
3f9e859167
@ -53,30 +53,16 @@ do_events (ClutterActor *stage)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static void
|
||||||
fps_cb (gpointer data)
|
on_paint (ClutterActor *stage, gconstpointer *data)
|
||||||
{
|
{
|
||||||
ClutterActor *stage = CLUTTER_ACTOR (data);
|
|
||||||
|
|
||||||
static GTimer *timer = NULL;
|
|
||||||
static gint fps = 0;
|
|
||||||
|
|
||||||
if (!timer)
|
|
||||||
{
|
|
||||||
timer = g_timer_new ();
|
|
||||||
g_timer_start (timer);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (g_timer_elapsed (timer, NULL) >= 1)
|
|
||||||
{
|
|
||||||
printf ("fps: %d\n", fps);
|
|
||||||
g_timer_start (timer);
|
|
||||||
fps = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
clutter_actor_paint (stage);
|
|
||||||
do_events (stage);
|
do_events (stage);
|
||||||
++fps;
|
}
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
queue_redraw (gpointer stage)
|
||||||
|
{
|
||||||
|
clutter_actor_queue_redraw (CLUTTER_ACTOR (stage));
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@ -90,6 +76,10 @@ main (int argc, char **argv)
|
|||||||
ClutterColor color = { 0x00, 0x00, 0x00, 0xff };
|
ClutterColor color = { 0x00, 0x00, 0x00, 0xff };
|
||||||
ClutterActor *stage, *rect;
|
ClutterActor *stage, *rect;
|
||||||
|
|
||||||
|
g_setenv ("CLUTTER_VBLANK", "none", FALSE);
|
||||||
|
g_setenv ("CLUTTER_DEFAULT_FPS", "1000", FALSE);
|
||||||
|
g_setenv ("CLUTTER_SHOW_FPS", "1", FALSE);
|
||||||
|
|
||||||
clutter_init_with_args (&argc, &argv,
|
clutter_init_with_args (&argc, &argv,
|
||||||
NULL,
|
NULL,
|
||||||
entries,
|
entries,
|
||||||
@ -134,7 +124,9 @@ main (int argc, char **argv)
|
|||||||
|
|
||||||
clutter_actor_show (stage);
|
clutter_actor_show (stage);
|
||||||
|
|
||||||
g_idle_add (fps_cb, (gpointer)stage);
|
g_idle_add (queue_redraw, stage);
|
||||||
|
|
||||||
|
g_signal_connect (stage, "paint", G_CALLBACK (on_paint), NULL);
|
||||||
|
|
||||||
clutter_main ();
|
clutter_main ();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user