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!
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user