2007-05-28 Matthew Allum <mallum@openedhand.com>
authorMatthew Allum <mallum@openedhand.com>
Mon, 28 May 2007 20:09:19 +0000 (20:09 +0000)
committerMatthew Allum <mallum@openedhand.com>
Mon, 28 May 2007 20:09:19 +0000 (20:09 +0000)
        * clutter/clutter-texture.c: (clutter_texture_unrealize):
        Dont even try to move texture pixels from video -> system
        ram on unrealisation for GL/ES

ChangeLog
clutter/clutter-texture.c

index 3493503..6b2c54d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2007-05-28  Matthew Allum  <mallum@openedhand.com>
 
+       * 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  <mallum@openedhand.com>
+
        * clutter/clutter-stage.c: (clutter_stage_get_actor_at_pos):
        Fix for GL/ES. Barring texture reads this means all clutter 
         functionality now works on GL/ES! (no doubt with a few yet to
index c68a2fc..959c991 100644 (file)
@@ -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");
 }