diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2014-04-30 16:12:55 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2014-04-30 16:13:49 +0400 |
commit | 1b9feb04ab87e73482a6491569b4518aa6a54c1b (patch) | |
tree | 2b4c1bfed6141820c220d0643ddb051089156708 /source/blender/editors/space_node/node_edit.c | |
parent | 6ab3a2f8a454aa47e4d64b6d1320dfc0c16546df (diff) |
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!
Diffstat (limited to 'source/blender/editors/space_node/node_edit.c')
-rw-r--r-- | source/blender/editors/space_node/node_edit.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index 677b5c24023..c7297f33322 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); |