diff --git a/ChangeLog b/ChangeLog index 349350368..6b2c54d9f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2007-05-28 Matthew Allum + + * clutter/clutter-texture.c: (clutter_texture_unrealize): + Dont even try to move texture pixels from video -> system + ram on unrealisation for GL/ES + 2007-05-28 Matthew Allum * clutter/clutter-stage.c: (clutter_stage_get_actor_at_pos): diff --git a/clutter/clutter-texture.c b/clutter/clutter-texture.c index c68a2fcfb..959c9914f 100644 --- a/clutter/clutter-texture.c +++ b/clutter/clutter-texture.c @@ -561,12 +561,18 @@ clutter_texture_unrealize (ClutterActor *actor) CLUTTER_MARK(); - /* Move image data from video to main memory - */ - if (priv->local_pixbuf == NULL) - priv->local_pixbuf = clutter_texture_get_pixbuf (texture); + 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. + */ + if (priv->local_pixbuf == NULL) + priv->local_pixbuf = clutter_texture_get_pixbuf (texture); - texture_free_gl_resources (texture); + texture_free_gl_resources (texture); + } CLUTTER_NOTE (TEXTURE, "Texture unrealized"); }