Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2017-11-09 13:20:17 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2017-11-09 13:20:17 +0300
commitd325e6f0e845d710abe4847a57be8e30920911a9 (patch)
tree13138d409459bbe7e223833a8f6a5000437585e6 /source/blender/editors/render/render_internal.c
parentc99481b6320a77e4793c812403f7d37dfc2d5ced (diff)
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.
Diffstat (limited to 'source/blender/editors/render/render_internal.c')
-rw-r--r--source/blender/editors/render/render_internal.c8
1 files changed, 6 insertions, 2 deletions
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;