[Bf-blender-cvs] [1b9feb0] master: Fix T38245: Render slot buffer gets deleted in compositor when input is an image

Sergey Sharybin noreply at git.blender.org
Wed Apr 30 14:13:58 CEST 2014


Commit: 1b9feb04ab87e73482a6491569b4518aa6a54c1b
Author: Sergey Sharybin
Date:   Wed Apr 30 18:12:55 2014 +0600
https://developer.blender.org/rB1b9feb04ab87e73482a6491569b4518aa6a54c1b

Fix T38245: Render slot buffer gets deleted in compositor when input is an image

This was more like a TODO than a bug, but wasn't difficult to support.

Need to backup image slots before doing re-compo in nodes editor.

If something breaks, lease poke me!

===================================================================

M	source/blender/editors/space_node/node_edit.c

===================================================================

diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c
index 677b5c2..c7297f3 100644
--- a/source/blender/editors/space_node/node_edit.c
+++ b/source/blender/editors/space_node/node_edit.c
@@ -257,7 +257,6 @@ static void compo_startjob(void *cjv, short *stop, short *do_update, float *prog
 	ntree->udh = cj;
 
 	// XXX BIF_store_spare();
-	
 	/* 1 is do_previews */
 	ntreeCompositExecTree(cj->scene, ntree, &cj->scene->r, false, true, &scene->view_settings, &scene->display_settings);
 
@@ -278,6 +277,7 @@ void ED_node_composite_job(const bContext *C, struct bNodeTree *nodetree, Scene
 {
 	wmJob *wm_job;
 	CompoJob *cj;
+	Scene *scene = CTX_data_scene(C);
 
 	/* to fix bug: [#32272] */
 	if (G.is_rendering) {
@@ -288,12 +288,14 @@ void ED_node_composite_job(const bContext *C, struct bNodeTree *nodetree, Scene
 	G.is_break = false;
 #endif
 
+	BKE_image_backup_render(scene, BKE_image_verify_viewer(IMA_TYPE_R_RESULT, "Render Result"));
+
 	wm_job = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), scene_owner, "Compositing",
 	                     WM_JOB_EXCL_RENDER | WM_JOB_PROGRESS, WM_JOB_TYPE_COMPOSITE);
 	cj = MEM_callocN(sizeof(CompoJob), "compo job");
 
 	/* customdata for preview thread */
-	cj->scene = CTX_data_scene(C);
+	cj->scene = scene;
 	cj->ntree = nodetree;
 	cj->recalc_flags = compo_get_recalc_flags(C);




More information about the Bf-blender-cvs mailing list