diff options
Diffstat (limited to 'source/blender/editors')
-rw-r--r-- | source/blender/editors/include/ED_screen.h | 2 | ||||
-rw-r--r-- | source/blender/editors/object/object_add.c | 2 | ||||
-rw-r--r-- | source/blender/editors/physics/dynamicpaint_ops.c | 4 | ||||
-rw-r--r-- | source/blender/editors/physics/physics_fluid.c | 4 | ||||
-rw-r--r-- | source/blender/editors/render/render_internal.c | 8 | ||||
-rw-r--r-- | source/blender/editors/render/render_opengl.c | 10 | ||||
-rw-r--r-- | source/blender/editors/render/render_preview.c | 2 | ||||
-rw-r--r-- | source/blender/editors/scene/scene_edit.c | 4 | ||||
-rw-r--r-- | source/blender/editors/screen/screen_edit.c | 4 | ||||
-rw-r--r-- | source/blender/editors/screen/screen_ops.c | 4 | ||||
-rw-r--r-- | source/blender/editors/sound/sound_ops.c | 5 | ||||
-rw-r--r-- | source/blender/editors/transform/transform_conversions.c | 4 |
12 files changed, 32 insertions, 21 deletions
diff --git a/source/blender/editors/include/ED_screen.h b/source/blender/editors/include/ED_screen.h index f7219ce6846..51f1f38a9e9 100644 --- a/source/blender/editors/include/ED_screen.h +++ b/source/blender/editors/include/ED_screen.h @@ -168,7 +168,7 @@ bool ED_workspace_layout_cycle( struct bContext *C) ATTR_NONNULL(); /* anim */ -void ED_update_for_newframe(struct Main *bmain, struct Scene *scene, struct Depsgraph *depsgraph); +void ED_update_for_newframe(struct Main *bmain, struct Scene *scene, struct SceneLayer *scene_layer, struct Depsgraph *depsgraph); void ED_refresh_viewport_fps(struct bContext *C); int ED_screen_animation_play(struct bContext *C, int sync, int mode); diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c index ac24b106383..f6a23a03aa4 100644 --- a/source/blender/editors/object/object_add.c +++ b/source/blender/editors/object/object_add.c @@ -1765,7 +1765,7 @@ static int convert_exec(bContext *C, wmOperator *op) Depsgraph *depsgraph = BKE_scene_get_depsgraph(scene, sl, true); uint64_t customdata_mask_prev = scene->customdata_mask; scene->customdata_mask |= CD_MASK_MESH; - BKE_scene_graph_update_tagged(bmain->eval_ctx, depsgraph, bmain, scene); + BKE_scene_graph_update_tagged(bmain->eval_ctx, depsgraph, bmain, scene, sl); scene->customdata_mask = customdata_mask_prev; } diff --git a/source/blender/editors/physics/dynamicpaint_ops.c b/source/blender/editors/physics/dynamicpaint_ops.c index 210d8351945..c10604b0edd 100644 --- a/source/blender/editors/physics/dynamicpaint_ops.c +++ b/source/blender/editors/physics/dynamicpaint_ops.c @@ -365,7 +365,7 @@ static void dynamicPaint_bakeImageSequence(DynamicPaintBakeJob *job) frame = surface->start_frame; orig_frame = scene->r.cfra; scene->r.cfra = (int)frame; - ED_update_for_newframe(job->bmain, scene, job->depsgraph); + ED_update_for_newframe(job->bmain, scene, job->scene_layer, job->depsgraph); /* Init surface */ if (!dynamicPaint_createUVSurface(scene, surface, job->progress, job->do_update)) { @@ -391,7 +391,7 @@ static void dynamicPaint_bakeImageSequence(DynamicPaintBakeJob *job) /* calculate a frame */ scene->r.cfra = (int)frame; - ED_update_for_newframe(job->bmain, scene, job->depsgraph); + ED_update_for_newframe(job->bmain, scene, job->scene_layer, job->depsgraph); if (!dynamicPaint_calculateFrame(surface, job->eval_ctx, scene, cObject, frame)) { job->success = 0; return; diff --git a/source/blender/editors/physics/physics_fluid.c b/source/blender/editors/physics/physics_fluid.c index a5e92802c6f..071dafe08bb 100644 --- a/source/blender/editors/physics/physics_fluid.c +++ b/source/blender/editors/physics/physics_fluid.c @@ -409,7 +409,7 @@ static void fluid_init_all_channels(bContext *C, Object *UNUSED(fsDomain), Fluid /* Modifying the global scene isn't nice, but we can do it in * this part of the process before a threaded job is created */ scene->r.cfra = (int)eval_time; - ED_update_for_newframe(CTX_data_main(C), scene, depsgraph); + ED_update_for_newframe(CTX_data_main(C), scene, sl, depsgraph); /* now scene data should be current according to animation system, so we fill the channels */ @@ -959,7 +959,7 @@ static int fluidsimBake(bContext *C, ReportList *reports, Object *fsDomain, shor /* reset to original current frame */ scene->r.cfra = origFrame; - ED_update_for_newframe(CTX_data_main(C), scene, depsgraph); + ED_update_for_newframe(CTX_data_main(C), scene, sl, depsgraph); /* ******** init domain object's matrix ******** */ copy_m4_m4(domainMat, fsDomain->obmat); 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; diff --git a/source/blender/editors/render/render_opengl.c b/source/blender/editors/render/render_opengl.c index 03cffa5a384..d436c562f19 100644 --- a/source/blender/editors/render/render_opengl.c +++ b/source/blender/editors/render/render_opengl.c @@ -812,8 +812,10 @@ static void screen_opengl_render_end(bContext *C, OGLRender *oglrender) } if (oglrender->timer) { /* exec will not have a timer */ + Depsgraph *depsgraph = oglrender->depsgraph; + SceneLayer *scene_layer = oglrender->scene_layer; scene->r.cfra = oglrender->cfrao; - BKE_scene_graph_update_for_newframe(bmain->eval_ctx, oglrender->depsgraph, bmain, scene); + BKE_scene_graph_update_for_newframe(bmain->eval_ctx, depsgraph, bmain, scene, scene_layer); WM_event_remove_timer(oglrender->wm, oglrender->win, oglrender->timer); } @@ -1013,6 +1015,8 @@ static bool screen_opengl_render_anim_step(bContext *C, wmOperator *op) Main *bmain = CTX_data_main(C); OGLRender *oglrender = op->customdata; Scene *scene = oglrender->scene; + SceneLayer *scene_layer = oglrender->scene_layer; + Depsgraph *depsgraph = oglrender->depsgraph; char name[FILE_MAX]; bool ok = false; const bool view_context = (oglrender->v3d != NULL); @@ -1023,7 +1027,7 @@ static bool screen_opengl_render_anim_step(bContext *C, wmOperator *op) if (CFRA < oglrender->nfra) CFRA++; while (CFRA < oglrender->nfra) { - BKE_scene_graph_update_for_newframe(bmain->eval_ctx, oglrender->depsgraph, bmain, scene); + BKE_scene_graph_update_for_newframe(bmain->eval_ctx, depsgraph, bmain, scene, scene_layer); CFRA++; } @@ -1045,7 +1049,7 @@ static bool screen_opengl_render_anim_step(bContext *C, wmOperator *op) WM_cursor_time(oglrender->win, scene->r.cfra); - BKE_scene_graph_update_for_newframe(bmain->eval_ctx, oglrender->depsgraph, bmain, scene); + BKE_scene_graph_update_for_newframe(bmain->eval_ctx, depsgraph, bmain, scene, scene_layer); if (view_context) { if (oglrender->rv3d->persp == RV3D_CAMOB && oglrender->v3d->camera && oglrender->v3d->scenelock) { diff --git a/source/blender/editors/render/render_preview.c b/source/blender/editors/render/render_preview.c index 84c843af020..47eca1ccba3 100644 --- a/source/blender/editors/render/render_preview.c +++ b/source/blender/editors/render/render_preview.c @@ -608,7 +608,7 @@ static Scene *preview_prepare_scene(Main *bmain, Scene *scene, ID *id, int id_ty /* TODO(sergey): Use proper flag for tagging here. */ DEG_graph_id_tag_update(pr_main, depsgraph, &sce->id, 0); DEG_relations_tag_update(pr_main); - BKE_scene_graph_update_tagged(pr_main->eval_ctx, depsgraph, pr_main, sce); + BKE_scene_graph_update_tagged(pr_main->eval_ctx, depsgraph, pr_main, sce, scene_layer); return sce; } diff --git a/source/blender/editors/scene/scene_edit.c b/source/blender/editors/scene/scene_edit.c index dca4cc77e5b..e68919aefaa 100644 --- a/source/blender/editors/scene/scene_edit.c +++ b/source/blender/editors/scene/scene_edit.c @@ -129,12 +129,12 @@ void ED_scene_changed_update(Main *bmain, bContext *C, Scene *scene_new, const b CTX_data_scene_set(C, scene_new); BKE_workspace_render_layer_set(CTX_wm_workspace(C), layer_new); BKE_scene_set_background(bmain, scene_new); - DEG_graph_relations_update(depsgraph, bmain, scene_new); + DEG_graph_relations_update(depsgraph, bmain, scene_new, layer_new); DEG_on_visible_update(bmain, false); ED_screen_update_after_scene_change(active_screen, scene_new, layer_new); ED_render_engine_changed(bmain); - ED_update_for_newframe(bmain, scene_new, depsgraph); + ED_update_for_newframe(bmain, scene_new, layer_new, depsgraph); /* complete redraw */ WM_event_add_notifier(C, NC_WINDOW, NULL); diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c index 749a857fdaa..dfe2942868f 100644 --- a/source/blender/editors/screen/screen_edit.c +++ b/source/blender/editors/screen/screen_edit.c @@ -1727,7 +1727,7 @@ void ED_screen_animation_timer_update(bScreen *screen, int redraws, int refresh) } /* results in fully updated anim system */ -void ED_update_for_newframe(Main *bmain, Scene *scene, struct Depsgraph *depsgraph) +void ED_update_for_newframe(Main *bmain, Scene *scene, SceneLayer *scene_layer, struct Depsgraph *depsgraph) { #ifdef DURIAN_CAMERA_SWITCH void *camera = BKE_scene_camera_switch_find(scene); @@ -1744,7 +1744,7 @@ void ED_update_for_newframe(Main *bmain, Scene *scene, struct Depsgraph *depsgra ED_clip_update_frame(bmain, scene->r.cfra); /* this function applies the changes too */ - BKE_scene_graph_update_for_newframe(bmain->eval_ctx, depsgraph, bmain, scene); + BKE_scene_graph_update_for_newframe(bmain->eval_ctx, depsgraph, bmain, scene, scene_layer); /* composite */ if (scene->use_nodes && scene->nodetree) diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index c02733d26bd..cb53de23983 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -3408,6 +3408,8 @@ static int screen_animation_step(bContext *C, wmOperator *UNUSED(op), const wmEv if (screen->animtimer && screen->animtimer == event->customdata) { Main *bmain = CTX_data_main(C); Scene *scene = CTX_data_scene(C); + SceneLayer *scene_layer = CTX_data_scene_layer(C); + struct Depsgraph *depsgraph = CTX_data_depsgraph(C); wmTimer *wt = screen->animtimer; ScreenAnimData *sad = wt->customdata; wmWindowManager *wm = CTX_wm_manager(C); @@ -3518,7 +3520,7 @@ static int screen_animation_step(bContext *C, wmOperator *UNUSED(op), const wmEv } /* since we follow drawflags, we can't send notifier but tag regions ourselves */ - ED_update_for_newframe(bmain, scene, CTX_data_depsgraph(C)); + ED_update_for_newframe(bmain, scene, scene_layer, depsgraph); for (window = wm->windows.first; window; window = window->next) { const bScreen *win_screen = WM_window_get_active_screen(window); diff --git a/source/blender/editors/sound/sound_ops.c b/source/blender/editors/sound/sound_ops.c index 0d6e0cf8e89..4fed7c4467e 100644 --- a/source/blender/editors/sound/sound_ops.c +++ b/source/blender/editors/sound/sound_ops.c @@ -311,6 +311,7 @@ static int sound_bake_animation_exec(bContext *C, wmOperator *UNUSED(op)) { Main *bmain = CTX_data_main(C); Scene *scene = CTX_data_scene(C); + SceneLayer *scene_layer = CTX_data_scene_layer(C); struct Depsgraph *depsgraph = CTX_data_depsgraph(C); int oldfra = scene->r.cfra; int cfra; @@ -319,11 +320,11 @@ static int sound_bake_animation_exec(bContext *C, wmOperator *UNUSED(op)) for (cfra = (scene->r.sfra > 0) ? (scene->r.sfra - 1) : 0; cfra <= scene->r.efra + 1; cfra++) { scene->r.cfra = cfra; - BKE_scene_graph_update_for_newframe(bmain->eval_ctx, depsgraph, bmain, scene); + BKE_scene_graph_update_for_newframe(bmain->eval_ctx, depsgraph, bmain, scene, scene_layer); } scene->r.cfra = oldfra; - BKE_scene_graph_update_for_newframe(bmain->eval_ctx, depsgraph, bmain, scene); + BKE_scene_graph_update_for_newframe(bmain->eval_ctx, depsgraph, bmain, scene, scene_layer); return OPERATOR_FINISHED; } diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index ed215a84dc7..922cae1320d 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -5559,7 +5559,7 @@ static void set_trans_object_base_flags(TransInfo *t) BKE_scene_base_flag_to_objects(t->scene_layer); /* Make sure depsgraph is here. */ - DEG_graph_relations_update(depsgraph, bmain, scene); + DEG_graph_relations_update(depsgraph, bmain, scene, sl); /* handle pending update events, otherwise they got copied below */ EvaluationContext eval_ctx; @@ -5696,7 +5696,7 @@ static int count_proportional_objects(TransInfo *t) /* all recalc flags get flushed to all layers, so a layer flip later on works fine */ - DEG_graph_relations_update(depsgraph, bmain, scene); + DEG_graph_relations_update(depsgraph, bmain, scene, sl); DEG_graph_flush_update(bmain, depsgraph); /* and we store them temporal in base (only used for transform code) */ |