Hi Robert,

You are correct in your error message analysis, but check the code of 
clutter_stage_new()
{
      if (!clutter_feature_available (CLUTTER_FEATURE_STAGE_MULTIPLE))
    {
      g_warning ("Unable to create a new stage: the %s backend does not
"
                 "support multiple stages.",
                 CLUTTER_FLAVOUR);
      return NULL;
    }
}

So, in addition to what you mentioned, logically from here also, the
error message which Greg is getting might come.


-----Original Message-----
From: Robert Bragg <[email protected]>
To: [email protected]
Cc: clutter <[email protected]>
Subject: Re: [clutter] Confused by eglx backend
Date: Tue, 23 Dec 2008 14:43:54 +0000


On Tue, 2008-12-23 at 00:38 -0800, Gregoire Gentil wrote:
> Hello,
> 
> I'm compiling clutter-0.8.4 with the following "--with-flavour=eglx
> --with-gles=2.0". I'm also compiling clutter-gtk-0.8.2 with the
> following "--with-flavour=x11 --with-gles=2.0"
> 
> My ultimate goal is to use something like:
> 
> gtk_clutter_init(&argc, &argv);
> GtkWidget *clutter_widget = NULL;
> clutter_widget = (GtkWidget *)gtk_clutter_embed_new();
> gtk_container_add(GTK_CONTAINER(c), clutter_widget);
> stage = (ClutterActor *)gtk_clutter_embed_get_stage(clutter_widget);
> 
> I get the following warning/errors:
> Clutter-WARNING **: Unable to create a new stage: the eglx backend does
> not support multiple stages.
> Clutter-CRITICAL **: clutter_actor_realize: assertion 'CLUTTER_IS_ACTOR
> (self)' failed
> ClutterX11-CRITICAL **: clutter_x11_get_stage_visual: assertion
> 'CLUTTER_IS_STAGE (stage)' failed

hmm, this seems odd because it looks like Matthew updated the eglx
backend to support multistage back in April. (Clutter 0.7.1, git rev
77a7eaeed51) I tried checking out 0.8.2 and 0.8.4 and grepping for "not
support multiple stages" and sure enough it looks like the only backends
that should print similar messages are the eglnative, SDL and fruity
backend, unless I'm missing somthing?

> 
> I'm obviously confused by what clutter can do with eglx backend and how
> I should do it. Can anyone clarify to me at least the following points:
> 
> - Can I embbed cluter into gtk with the eglx backend?
I can't say I've tested what you're trying but I think it should
work modulo various bugs due to lack of testing. Some experience with
early OMAP 3 PowerVR drivers showed the eglx drivers to be a bit
unstable and sensative to the size of the X Window used. (e.g. we were
ok with full screen windows, but saw issues when window managers resized
our eglx windows.) - Of course this may have improved since we last
tried.

> - If yes, what am I doing wrong?
Double checking you are running against the right version and
understanding how you see the error you report when it seem like Clutter
0.8.x doesn't contain that message in the source code, seems like the
place to start.

> - If not, does it mean that clutter-eglx can only work in fullscreen on
> top of everything? How does it work?

eglnative corresponds to full screen egl, or rather passing a NULL
display/window handle to egl, which is what the IMG NULL window
system EGL driver expects.

eglx is used to draw over a single X window. It passes an Window XID to
EGL, according to how the IMG eglx window system defines the egl Native
types. (technically powervr-eglx might be a better name.) This should
not be limited to fullscreen.

>
> I would definitely appreciate some clarifications or some pointers
> explaining the backend story and roadmap.
I'm sorry, but the best I can suggest here if you want to look into
the history is to look at the code/git logs; unless you have a more
specific question. As far as a road map goes for backends, I'm afraid we
don't have one. If there is something specific you would like to see
though or you can clearly point to a bug please file a report in
http://bugzilla.o-hand.com, or we would be very happy to review patches.

kind regards,
- Robert

-- 
Robert Bragg, Intel Open Source Technology Center

Reply via email to