Revision: 53333
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=53333
Author:   psy-fi
Date:     2012-12-26 20:38:20 +0000 (Wed, 26 Dec 2012)
Log Message:
-----------
Fix: after multires baking, gpu textures were not getting invalidated
for images and viewport was not getting refreshed with new baked
textures. Now made sure this happens. The image list is copied to the
job custom data so that the custom data cleanup function can properly
delete them (if gpu image texture deletion does not happen on main
thread, image bindcodes will remain intact for original images)

Modified Paths:
--------------
    trunk/blender/source/blender/editors/object/object_bake.c

Modified: trunk/blender/source/blender/editors/object/object_bake.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_bake.c   2012-12-26 
17:36:51 UTC (rev 53332)
+++ trunk/blender/source/blender/editors/object/object_bake.c   2012-12-26 
20:38:20 UTC (rev 53333)
@@ -89,6 +89,7 @@
        struct MultiresBakerJobData *next, *prev;
        DerivedMesh *lores_dm, *hires_dm;
        int simple, lvl, tot_lvl;
+       ListBase images;
 } MultiresBakerJobData;
 
 /* data passing to multires-baker job */
@@ -429,7 +430,7 @@
 
                RE_multires_bake_images(&bkr);
 
-               BLI_freelistN(&bkr.image);
+               data->images = bkr.image;
 
                baked_objects++;
        }
@@ -439,12 +440,22 @@
 {
        MultiresBakeJob *bkj = bkv;
        MultiresBakerJobData *data, *next;
+       LinkData *link;
 
        data = bkj->data.first;
        while (data) {
                next = data->next;
                data->lores_dm->release(data->lores_dm);
                data->hires_dm->release(data->hires_dm);
+
+               /* delete here, since this delete will be called from main 
thread */
+               for (link = data->images.first; link; link = link->next) {
+                       Image *ima = (Image *)link->data;
+                       GPU_free_image(ima);
+               }
+
+               BLI_freelistN(&data->images);
+
                MEM_freeN(data);
                data = next;
        }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to