From 30179f4dc66ff45a5e0077962c0151d7e7865ca1 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Thu, 2 Dec 2010 16:12:55 +0000 Subject: IRC comment fix: Option "free all texture-images" after render, was also freeing unsaved painted images. Now it skips them. --- source/blender/blenkernel/intern/image.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'source') diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c index 31eae70f159..da1d59a0835 100644 --- a/source/blender/blenkernel/intern/image.c +++ b/source/blender/blenkernel/intern/image.c @@ -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)); */ -- cgit v1.2.3