Hi; i tried for current trunk version
same problem continues.
i changed clutter_texture_unrealize function clutter-texture.c as given
below
i comment out this part
if (priv->local_data == NULL)
{
clutter_texture_save_to_local_data (texture);
CLUTTER_NOTE (TEXTURE, "moved pixels into system mem");
}
then every thing works fine on the given platform?
what can be the matter?
The whole function is given below
static void
clutter_texture_unrealize (ClutterActor *actor)
{
ClutterTexture *texture;
ClutterTexturePrivate *priv;
texture = CLUTTER_TEXTURE(actor);
priv = texture->priv;
if (priv->texture == COGL_INVALID_HANDLE)
return;
/* there's no need to read the pixels back when unrealizing inside
* a dispose run, and the dispose() call will release the GL
* texture data as well, so we can safely bail out now
*/
if (CLUTTER_PRIVATE_FLAGS (actor) & CLUTTER_ACTOR_IN_DESTRUCTION)
return;
CLUTTER_MARK();
if (priv->fbo_source != COGL_INVALID_HANDLE)
{
/* Free up our fbo handle and texture resources, realize will
recreate */
cogl_offscreen_unref (priv->fbo_handle);
priv->fbo_handle = COGL_INVALID_HANDLE;
texture_free_gl_resources (texture);
return;
}
if (clutter_feature_available (CLUTTER_FEATURE_TEXTURE_READ_PIXELS))
{
/* Move image data from video to main memory.
* GL/ES cant do this - it probably makes sense
* to move this kind of thing into a ClutterProxyTexture
* where this behaviour can be better controlled.
*
* Or make it controllable via a property.
*/
/*if (priv->local_data == NULL)
{
clutter_texture_save_to_local_data (texture);
CLUTTER_NOTE (TEXTURE, "moved pixels into system mem");
}*/
texture_free_gl_resources (texture);
}
CLUTTER_NOTE (TEXTURE, "Texture unrealized");
}
On Tue, 2008-05-06 at 16:02 +0100, Matthew Allum wrote:
> Hi;
>
> Is it possible you could try with trunk - these issues should be sorted
> there. I.e new COGL Texture stuff, rewritten GTK widget (no xembed). Not
> things we can easily backport however. 0.8 should not be far off now
> though (aiming for June).
>
> == Matthew
>
> On Tue, 2008-05-06 at 10:11 +0300, Uygar Gumus wrote:
> > Hi clutter experts
> >
> > We are developing a media application using clutter 0.6.2 version.
> > Have some problems can you please help me.
> >
> > 1- g_main_loop_new problem
> > We want to open a pop up menu when user hits a button using
> > GMainLoop.
> > As in descirption of GMainLoop and GtkDialog It is possible to
> > create new instances of GMainLoop recursively to create pop up
> > windows.
> > I am created a pop up window class using clutter. This class has a
> > group and actors in this group. When user hits a button that group
> > will be shown and
> > connect events take input focus via clutter_stage_set_key_focus
> > function. This group is shown on the stage, but does not receive any
> > key press events.
> > because emit_event function in clutter_main.c guards against
> > reentering by g_return_if_fail (lock == FALSE); (line 1186 v0.6.2).
> > My main problem is showing pop up menu (which accepts key events) in
> > a key press event scope.
> > How can i create a pop up window with clutter or how can i let the
> > pop up window to receive/emit the events.
> >
> > 2- texture_get_tile_pixbuf - glGetTexImage problem.
> > Our target platform is VIA Intel Board. On this environment
> > clutter_actor_destroy function fails for every ClutterTexture
> > instances.
> > When i trace the call stack, saw that call trace
> > clutter_actor_destroy
> > clutter_container_remove_actor
> > clutter_group_real_remove
> > clutter_actor_unparent
> > clutter_actor_unrealize
> > clutter_texture_unrealize
> > clutter_texture_get_pixbuf
> > texture_get_tile_pixbuf
> >
> > and than glGetTexImage call on line 1235 (clutter_texture,c v0.6.2)
> > fails and application gets segmentation fault signal.
> >
> > glxinfo output for driver info for the board is
> > OpenGL vendor string: VIA Technology
> > OpenGL renderer string: Mesa DRI UniChrome 20060710 x86/MMX/SSE2
> > OpenGL version string: 1.2 Mesa 6.5.1
> > server glx vendor string: SGI
> > server glx version string: 1.2
> > client glx vendor string: SGI
> > client glx version string: 1.4
> >
> > The same code runs safely on my regular pc.
> >
> > 3- destroying actors
> > Whenever i call clutter_actor_destroy a get this assertion
> > "clutter_actor_destroy: assertion `CLUTTER_IS_ACTOR (self)' failed"
> > How does clutter makes memory management and ref count on actors. If
> > i do not call clutter_actor_destroy, does this results memory leak?
> >
> > Thanks for your replies and the clutter works...
> >
> >
> > --
> > Uygar GUMUS
> > VESTEK Elektronik Arastirma Gelistirme A.S.
> > Adres : ITU Ayazaga Kampusu Ari 2-B/7
> > 34469 Maslak / Istanbul
> > Tel : 0212 285 21 20 dahili:147
> > Faks : 0212 285 28 30
> > e-mail : [EMAIL PROTECTED]
>
--
Uygar GUMUS
VESTEK Elektronik Arastirma Gelistirme A.S.
Adres : ITU Ayazaga Kampusu Ari 2-B/7
34469 Maslak / Istanbul
Tel : 0212 285 21 20 dahili:147
Faks : 0212 285 28 30
e-mail : [EMAIL PROTECTED]