Hello again,
I posted before title:
Clutter and GTK-Clutter-Embed for Medical viewer
I use Fedora 15 64bit with gtk3-3.0.12, clutter-1.16, clutter-gtk 1.0.0 on a
Lenovo T61p laptop (Nvidia Quadro FX 570M) with Nvidia binary driver.
To illustrate my problem I created a minimal example: Three GTKClutterEmbed
Widgets in a HorizontalBox widget, drag_action and reactive enable on the only
actor in each stage. Now when I drag each actor in a row, the first time it
works, but then two of the three actors stop responding.
The errors I get:
<ERROR>
(clMedView:16773): Clutter-WARNING **: The required ID of 2236962 does not
refer to an existing actor; this usually implies that the pick() of an actor is
not correctly implemented or that there is an error in the glReadPixels()
implementation of the GL driver.
</ERROR>
I hope somebody can give me some advise.
Regards
Marc Geerlings
<CODE_EXAMPLE>
#include <gtk/gtk.h>
#include <clutter/clutter.h>
#include <clutter-gtk/clutter-gtk.h>
#define TEST_FILE1_PATH "/home/m.geerlings/Images/Karolien.png"
#define TEST_FILE2_PATH "/home/m.geerlings/Images/Suzanne.png"
#define TEST_FILE3_PATH "/home/m.geerlings/Images/Marlies.png"
int
main(int argc, char** argv)
{
ClutterColor cl_color_Viewport = { 0, 0, 0, 255 };
GError *error = NULL;
gtk_clutter_init (&argc, &argv);
GtkWidget *win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
GtkWidget *hbox = gtk_hbox_new (FALSE, 1);
gtk_container_add (GTK_CONTAINER (win), hbox);
gtk_widget_show (hbox);
GtkWidget *clutter_widget1 = gtk_clutter_embed_new ();
ClutterActor *stage_Viewport1 = gtk_clutter_embed_get_stage (GTK_CLUTTER_EMBED
(clutter_widget1));
clutter_stage_set_color(CLUTTER_STAGE (stage_Viewport1),&cl_color_Viewport);
gtk_box_pack_end (GTK_BOX (hbox),clutter_widget1 , FALSE, TRUE, 0);
gtk_widget_set_size_request (clutter_widget1, 256, 256);
gtk_widget_show (clutter_widget1);
GtkWidget *clutter_widget2 = gtk_clutter_embed_new ();
ClutterActor *stage_Viewport2 = gtk_clutter_embed_get_stage (GTK_CLUTTER_EMBED
(clutter_widget2));
clutter_stage_set_color(CLUTTER_STAGE (stage_Viewport2),&cl_color_Viewport);
gtk_box_pack_end (GTK_BOX (hbox),clutter_widget2 , FALSE, TRUE, 0);
gtk_widget_set_size_request (clutter_widget2, 256, 256);
gtk_widget_show (clutter_widget2);
GtkWidget *clutter_widget3 = gtk_clutter_embed_new ();
ClutterActor *stage_Viewport3 = gtk_clutter_embed_get_stage (GTK_CLUTTER_EMBED
(clutter_widget3));
clutter_stage_set_color(CLUTTER_STAGE (stage_Viewport3),&cl_color_Viewport);
gtk_box_pack_end (GTK_BOX (hbox),clutter_widget3 , FALSE, TRUE, 0);
gtk_widget_set_size_request (clutter_widget3, 256, 256);
gtk_widget_show (clutter_widget3);
ClutterActor *actor_SliceDisplay1 =
clutter_texture_new_from_file(TEST_FILE1_PATH,&error);
if (error != NULL)
{
printf("error loading %s...\n",TEST_FILE1_PATH);
return 1;
}
clutter_actor_add_action (actor_SliceDisplay1,clutter_drag_action_new ());
clutter_actor_set_reactive (actor_SliceDisplay1,TRUE);
clutter_container_add_actor(CLUTTER_CONTAINER
(stage_Viewport1),actor_SliceDisplay1);
clutter_actor_show(stage_Viewport1);
ClutterActor *actor_SliceDisplay2 =
clutter_texture_new_from_file(TEST_FILE2_PATH,&error);
if (error != NULL)
{
printf("error loading %s...\n",TEST_FILE2_PATH);
return 1;
}
clutter_actor_add_action (actor_SliceDisplay2,clutter_drag_action_new ());
clutter_actor_set_reactive (actor_SliceDisplay2,TRUE);
clutter_container_add_actor(CLUTTER_CONTAINER
(stage_Viewport2),actor_SliceDisplay2);
clutter_actor_show(stage_Viewport2);
ClutterActor *actor_SliceDisplay3 =
clutter_texture_new_from_file(TEST_FILE3_PATH,&error);
if (error != NULL)
{
printf("error loading %s...\n",TEST_FILE3_PATH);
return 1;
}
clutter_actor_add_action (actor_SliceDisplay3,clutter_drag_action_new ());
clutter_actor_set_reactive (actor_SliceDisplay3,TRUE);
clutter_container_add_actor(CLUTTER_CONTAINER
(stage_Viewport3),actor_SliceDisplay3);
clutter_actor_show(stage_Viewport3);
gtk_widget_show (GTK_WIDGET (win));
g_signal_connect (win, "hide",
G_CALLBACK (gtk_main_quit), NULL);
gtk_main();
return 0;
}
</CODE_EXAMPLE>
_______________________________________________
clutter-app-devel-list mailing list
[email protected]
http://lists.clutter-project.org/listinfo/clutter-app-devel-list