From d325e6f0e845d710abe4847a57be8e30920911a9 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Thu, 9 Nov 2017 11:20:17 +0100 Subject: Depsgraph: Make dependency graph to be built from scene layer This is a final step of having proper ownership. Now selecting different layers in the "top bar" will actually do what this is expected to do. Surely, there are still things to be done under the hood, that will happen in a less intrusive way. --- source/blender/editors/render/render_internal.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'source/blender/editors/render/render_internal.c') diff --git a/source/blender/editors/render/render_internal.c b/source/blender/editors/render/render_internal.c index 61ff9264e95..3f2951b2a3e 100644 --- a/source/blender/editors/render/render_internal.c +++ b/source/blender/editors/render/render_internal.c @@ -101,6 +101,7 @@ static int render_break(void *rjv); typedef struct RenderJob { Main *main; Scene *scene; + SceneLayer *scene_layer; Scene *current_scene; /* TODO(sergey): Should not be needed once engine will have own * depsgraph and copy-on-write will be implemented. @@ -295,6 +296,8 @@ static void screen_render_scene_layer_set(wmOperator *op, Main *mainp, Scene **s static int screen_render_exec(bContext *C, wmOperator *op) { Scene *scene = CTX_data_scene(C); + SceneLayer *scene_layer = CTX_data_scene_layer(C); + Depsgraph *depsgraph = CTX_data_depsgraph(C); SceneRenderLayer *srl = NULL; Render *re; Image *ima; @@ -342,7 +345,7 @@ static int screen_render_exec(bContext *C, wmOperator *op) RE_SetReports(re, NULL); // no redraw needed, we leave state as we entered it - ED_update_for_newframe(mainp, scene, CTX_data_depsgraph(C)); + ED_update_for_newframe(mainp, scene, scene_layer, depsgraph); WM_event_add_notifier(C, NC_SCENE | ND_RENDER_RESULT, scene); @@ -656,7 +659,7 @@ static void render_endjob(void *rjv) if (rj->anim && !(rj->scene->r.scemode & R_NO_FRAME_UPDATE)) { /* possible this fails of loading new file while rendering */ if (G.main->wm.first) { - ED_update_for_newframe(G.main, rj->scene, rj->depsgraph); + ED_update_for_newframe(G.main, rj->scene, rj->scene_layer, rj->depsgraph); } } @@ -919,6 +922,7 @@ static int screen_render_invoke(bContext *C, wmOperator *op, const wmEvent *even rj->main = mainp; rj->scene = scene; rj->current_scene = rj->scene; + rj->scene_layer = CTX_data_scene_layer(C); /* TODO(sergey): Render engine should be using own depsgraph. */ rj->depsgraph = CTX_data_depsgraph(C); rj->srl = srl; -- cgit v1.2.3