Hi,

I'm just getting started playing around with Clutter.  I've tried modifiying
clutter-tutorial/examples/full_example/main.c to use an embedded stage in a
GtkWindow.  The window shows up fine and so do the image actors.  But, once
the main loop starts, the subject error message is written continually to
the console.  No animation happens and no events are getting handled. I
could use some help in figuring out what it is.

I'm using the latest Clutter code from the repositories. Here is the code I
added to the main method:

 gtk_clutter_init (&argc, &argv);
  /* Create the window and some child widgets: */
  GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
/*
  gtk_window_set_decorated (GTK_WINDOW (window), FALSE);
  gtk_window_set_skip_taskbar_hint (GTK_WINDOW (window), TRUE);
  gtk_window_set_skip_pager_hint (GTK_WINDOW (window), TRUE);
  gtk_window_set_keep_above (GTK_WINDOW (window), TRUE);
  gtk_window_fullscreen (GTK_WINDOW (window));
  int event_mask = GDK_EXPOSURE_MASK | GDK_STRUCTURE_MASK;
  gtk_widget_set_events (window, gtk_widget_get_events (window) |
event_mask);
*/
  GtkWidget *vbox = gtk_vbox_new (FALSE, 0);
  gtk_container_add (GTK_CONTAINER (window), vbox);
  gtk_widget_show (vbox);

    /* Stop the application when the window is closed: */
  g_signal_connect (window, "hide",
                    G_CALLBACK (gtk_main_quit), NULL);

    /* Create the clutter widget: */
  GtkWidget *clutter_widget = gtk_clutter_embed_new ();
  gtk_box_pack_start (GTK_BOX (vbox), clutter_widget, TRUE, TRUE, 0);
  gtk_widget_show (GTK_WIDGET (clutter_widget));

  /* Set the size of the widget,
   * because we should not set the size of its stage when using
GtkClutterEmbed.
   */
  gtk_widget_set_size_request (clutter_widget, 800, 600);


  /* Get the stage and set its size and color: */
  stage = gtk_clutter_embed_get_stage (GTK_CLUTTER_EMBED (clutter_widget));

  //stage = clutter_stage_get_default ();
  //clutter_actor_set_size (stage, 800, 600);
  clutter_stage_set_color (CLUTTER_STAGE (stage), &stage_color);
    /* Show the stage: */
  clutter_actor_show (stage);

.............. unchanged code here ...................

/* Show the window: */
  gtk_widget_show (GTK_WIDGET (window));

  /* Start the main loop, so we can respond to events: */
  //clutter_main ();
  gtk_main ();

................. more unchanged code here ....................

Thanks,
Neil

Reply via email to