[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