IRC comment fix:
authorTon Roosendaal <ton@blender.org>
Thu, 2 Dec 2010 16:12:55 +0000 (16:12 +0000)
committerTon Roosendaal <ton@blender.org>
Thu, 2 Dec 2010 16:12:55 +0000 (16:12 +0000)
Option "free all texture-images" after render, was also
freeing unsaved painted images. Now it skips them.

source/blender/blenkernel/intern/image.c

index 31eae70f159855b88354bf2cf99fdb832b48defc..da1d59a0835e9ce1a45b41f959277041119bac47 100644 (file)
@@ -607,15 +607,21 @@ void BKE_image_free_all_textures(void)
        
        for(ima= G.main->image.first; ima; ima= ima->id.next) {
                if(ima->ibufs.first && (ima->id.flag & LIB_DOIT)) {
-                       /*
                        ImBuf *ibuf;
+                       
                        for(ibuf= ima->ibufs.first; ibuf; ibuf= ibuf->next) {
-                               if(ibuf->mipmap[0]) 
+                               /* escape when image is painted on */
+                               if(ibuf->userflags & IB_BITMAPDIRTY)
+                                       break;
+                               
+                               /* if(ibuf->mipmap[0]) 
                                        totsize+= 1.33*ibuf->x*ibuf->y*4;
                                else
-                                       totsize+= ibuf->x*ibuf->y*4;
-                       } */
-                       image_free_buffers(ima);
+                                       totsize+= ibuf->x*ibuf->y*4;*/
+                               
+                       }
+                       if(ibuf==NULL)
+                               image_free_buffers(ima);
                }
        }
        /* printf("freed total %d MB\n", totsize/(1024*1024)); */