[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45161] trunk/blender/source/blender: fix [#30653] Wrong image at UV/Image Editor window

Campbell Barton ideasman42 at gmail.com
Mon Mar 26 10:10:13 CEST 2012


Revision: 45161
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45161
Author:   campbellbarton
Date:     2012-03-26 08:10:12 +0000 (Mon, 26 Mar 2012)
Log Message:
-----------
fix [#30653] Wrong image at UV/Image Editor window

render results would be displayed on loading new files if the scene names matches, now free render-results so as not to display stale data - also saves some memory.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/blender.c
    trunk/blender/source/blender/render/extern/include/RE_pipeline.h
    trunk/blender/source/blender/render/intern/source/pipeline.c

Modified: trunk/blender/source/blender/blenkernel/intern/blender.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/blender.c	2012-03-26 08:06:13 UTC (rev 45160)
+++ trunk/blender/source/blender/blenkernel/intern/blender.c	2012-03-26 08:10:12 UTC (rev 45161)
@@ -78,6 +78,7 @@
 #include "BKE_screen.h"
 #include "BKE_sequencer.h"
 #include "BKE_sound.h"
+#include "RE_pipeline.h"
 
 
 #include "BLO_undofile.h"
@@ -199,6 +200,11 @@
 
 	recover= (G.fileflags & G_FILE_RECOVER);
 
+	/* Free all render results, without this stale data gets displayed after loading files */
+	if (mode != 'u') {
+		RE_FreeAllRenderResults();
+	}
+
 	/* Only make filepaths compatible when loading for real (not undo) */
 	if (mode != 'u') {
 		clean_paths(bfd->main);

Modified: trunk/blender/source/blender/render/extern/include/RE_pipeline.h
===================================================================
--- trunk/blender/source/blender/render/extern/include/RE_pipeline.h	2012-03-26 08:06:13 UTC (rev 45160)
+++ trunk/blender/source/blender/render/extern/include/RE_pipeline.h	2012-03-26 08:10:12 UTC (rev 45161)
@@ -165,6 +165,8 @@
 void RE_FreeRender (struct Render *re);
 /* only called on exit */
 void RE_FreeAllRender (void);
+/* only call on file load */
+void RE_FreeAllRenderResults(void);
 
 /* get results and statistics */
 void RE_FreeRenderResult(struct RenderResult *rr);

Modified: trunk/blender/source/blender/render/intern/source/pipeline.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/pipeline.c	2012-03-26 08:06:13 UTC (rev 45160)
+++ trunk/blender/source/blender/render/intern/source/pipeline.c	2012-03-26 08:10:12 UTC (rev 45161)
@@ -410,6 +410,20 @@
 	}
 }
 
+/* on file load, free all re */
+void RE_FreeAllRenderResults(void)
+{
+	Render *re;
+
+	for (re = RenderGlobal.renderlist.first; re; re = re->next) {
+		render_result_free(re->result);
+		render_result_free(re->pushedresult);
+
+		re->result = NULL;
+		re->pushedresult = NULL;
+	}
+}
+
 /* ********* initialize state ******** */
 
 




More information about the Bf-blender-cvs mailing list