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]

Reply via email to