[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36551] trunk/blender/source/blender/ editors: Bug fix own collection:

Sergey Sharybin g.ulairi at gmail.com
Sun May 8 22:21:32 CEST 2011


Revision: 36551
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36551
Author:   nazgul
Date:     2011-05-08 20:21:31 +0000 (Sun, 08 May 2011)
Log Message:
-----------
Bug fix own collection:
 - Recreate mipmaps if they're dirty when drawing background image
   (this prevents "delayed" update of background image when you're paiting on it
    in image editor).
 - Mark mipmaps as dirty when inverting image channels.

TODO: there's memory leak caused by IMB_remakemipmap, but it'll be
      anuther bugfix commit after discussion with other devs.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_image/image_ops.c
    trunk/blender/source/blender/editors/space_view3d/view3d_draw.c

Modified: trunk/blender/source/blender/editors/space_image/image_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_image/image_ops.c	2011-05-08 16:08:08 UTC (rev 36550)
+++ trunk/blender/source/blender/editors/space_image/image_ops.c	2011-05-08 20:21:31 UTC (rev 36551)
@@ -1423,6 +1423,9 @@
 	}
 
 	ibuf->userflags |= IB_BITMAPDIRTY;
+	if(ibuf->mipmap[0])
+		ibuf->userflags |= IB_MIPMAP_INVALID;
+
 	WM_event_add_notifier(C, NC_IMAGE|NA_EDITED, ima);
 	return OPERATOR_FINISHED;
 }

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_draw.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_draw.c	2011-05-08 16:08:08 UTC (rev 36550)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_draw.c	2011-05-08 20:21:31 UTC (rev 36551)
@@ -1317,7 +1317,11 @@
 				float tzoom= MIN2(zoomx, zoomy);
 				int mip= 0;
 
-				if(ibuf->mipmap[0]==NULL)
+				if((ibuf->userflags&IB_MIPMAP_INVALID) != 0) {
+					IMB_remakemipmap(ibuf, 0);
+					ibuf->userflags&= ~IB_MIPMAP_INVALID;
+				}
+				else if(ibuf->mipmap[0]==NULL)
 					IMB_makemipmap(ibuf, 0);
 
 				while(tzoom < 1.0f && mip<8 && ibuf->mipmap[mip]) {




More information about the Bf-blender-cvs mailing list