Dear list:

In Clutter, Can I create a worker thread for creating actors and add them
into the stage?

I found when creating ClutterRectangle, It can work, but when it comes to
ClutterTexture, it failed.

Can anybody help me.

Thanks.

-- 
Best Regards
#include <clutter/clutter.h>
#include <stdlib.h>

gpointer thread_add_actors(gpointer data)
{
	ClutterActor* stage = data;
	ClutterColor red = {0xff, 0x0, 0x0, 0xff};

	ClutterActor *rect = clutter_rectangle_new_with_color(&red);
	clutter_actor_show(rect);
	clutter_actor_set_size(rect, 100, 100);
	clutter_container_add((ClutterContainer*)stage, rect, NULL);

	ClutterActor* photo = clutter_texture_new_from_file("thumbnail.jpg", NULL);
	clutter_actor_set_size(photo, 100, 100);
	clutter_actor_set_position(photo, 100, 100);
	clutter_container_add((ClutterContainer*)stage, photo, NULL);
}
int main(int argc, char** argv)
{
	ClutterColor stage_color = {0x00, 0x00, 0x00, 0xff};
	clutter_init(&argc, &argv);
	ClutterActor *stage = clutter_stage_get_default();
	clutter_stage_set_title(CLUTTER_STAGE(stage), "Example");
	clutter_actor_set_size(stage, 400, 300);
	clutter_stage_set_color(CLUTTER_STAGE(stage), &stage_color);
	clutter_actor_show(stage);

	g_thread_init(NULL);
	g_thread_create(thread_add_actors, stage, TRUE, NULL);

	clutter_main();
	return EXIT_SUCCESS;
}

Reply via email to