Bugfix #26001
authorTon Roosendaal <ton@blender.org>
Thu, 10 Feb 2011 15:47:55 +0000 (15:47 +0000)
committerTon Roosendaal <ton@blender.org>
Thu, 10 Feb 2011 15:47:55 +0000 (15:47 +0000)
Adding a byte rect to float ImBuf was always freeing the mipmap levels.
Removed this convention since it crashes renders + image texture draw.

Proper ownership handling of ImBuf is high on the wish list :)

source/blender/imbuf/intern/allocimbuf.c

index fa82316..3228447 100644 (file)
@@ -299,8 +299,12 @@ short imb_addrectImBuf(ImBuf *ibuf)
        int size;
 
        if(ibuf==NULL) return FALSE;
-       imb_freerectImBuf(ibuf);
-
+       
+       /* don't call imb_freerectImBuf, it frees mipmaps, this call is used only too give float buffers display */
+       if(ibuf->rect && (ibuf->mall & IB_rect))
+               MEM_freeN(ibuf->rect);
+       ibuf->rect= NULL;
+       
        size = ibuf->x*ibuf->y;
        size = size*sizeof(unsigned int);