diff options
Diffstat (limited to 'source/blender/render/intern/source/pipeline.c')
-rw-r--r-- | source/blender/render/intern/source/pipeline.c | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index fa05f8dd18d..d11f4615698 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -1600,6 +1600,7 @@ static void tag_scenes_for_render(Render *re) /* check for render-layers nodes using other scenes, we tag them LIB_DOIT */ for (node = re->scene->nodetree->nodes.first; node; node = node->next) { + node->flag &= ~NODE_TEST; if (node->type == CMP_NODE_R_LAYERS) { if (node->id) { if (!MAIN_VERSION_ATLEAST(re->main, 265, 5)) { @@ -1617,8 +1618,12 @@ static void tag_scenes_for_render(Render *re) } } - if (node->id != (ID *)re->scene) - node->id->flag |= LIB_DOIT; + if (node->id != (ID *)re->scene) { + if ((node->id->flag & LIB_DOIT) == 0) { + node->flag |= NODE_TEST; + node->id->flag |= LIB_DOIT; + } + } } } } @@ -1640,12 +1645,12 @@ static void ntree_render_scenes(Render *re) for (node = re->scene->nodetree->nodes.first; node; node = node->next) { if (node->type == CMP_NODE_R_LAYERS) { if (node->id && node->id != (ID *)re->scene) { - if (node->id->flag & LIB_DOIT) { + if (node->flag & NODE_TEST) { Scene *scene = (Scene *)node->id; render_scene(re, scene, cfra); restore_scene = (scene != re->scene); - node->id->flag &= ~LIB_DOIT; + node->flag &= ~NODE_TEST; nodeUpdate(re->scene->nodetree, node); } @@ -1679,7 +1684,7 @@ static void add_freestyle(Render *re, int render) * real bmain uses. This is needed because freestyle's * bmain could be used to tag scenes for update, which * implies call of ED_render_scene_update in some cases - * and that function requires proper windoew manager + * and that function requires proper window manager * to present (sergey) */ re->freestyle_bmain.wm = re->main->wm; @@ -2288,13 +2293,6 @@ int RE_is_rendering_allowed(Scene *scene, Object *camera_override, ReportList *r BKE_report(reports, RPT_ERROR, "Cannot save render buffers, check the temp default path"); return 0; } - - /* no fullsample and edge */ - if ((scemode & R_FULL_SAMPLE) && (scene->r.mode & R_EDGE)) { - BKE_report(reports, RPT_ERROR, "Full sample does not support edge enhance"); - return 0; - } - } if (scemode & R_DOCOMP) { |