diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-04-06 12:21:20 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-04-13 15:17:37 +0300 |
commit | a1e2415ed51e2da97e3b182f18f462345a02ce14 (patch) | |
tree | 59d54c64e1e19bde4aab0d79aa2a51a66dabc877 /source/blender/blenkernel | |
parent | eec5d3a8a8a26256fbae39d4f1fb01de6a648eea (diff) |
Depsgraph: don't pass evaluation context to update functions.
The depsgraph now contains all the state needed to evaluate it.
Differential Revision: https://developer.blender.org/D3147
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/BKE_scene.h | 16 | ||||
-rw-r--r-- | source/blender/blenkernel/BKE_workspace.h | 3 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/anim.c | 8 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/pointcache.c | 4 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/scene.c | 29 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/sequencer.c | 4 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/workspace.c | 5 |
7 files changed, 27 insertions, 42 deletions
diff --git a/source/blender/blenkernel/BKE_scene.h b/source/blender/blenkernel/BKE_scene.h index bd36bb000b4..4a97cb763dc 100644 --- a/source/blender/blenkernel/BKE_scene.h +++ b/source/blender/blenkernel/BKE_scene.h @@ -139,17 +139,11 @@ void BKE_scene_frame_set(struct Scene *scene, double cfra); /* ** Scene evaluation ** */ -void BKE_scene_graph_update_tagged(struct EvaluationContext *eval_ctx, - struct Depsgraph *depsgraph, - struct Main *bmain, - struct Scene *scene, - struct ViewLayer *view_layer); - -void BKE_scene_graph_update_for_newframe(struct EvaluationContext *eval_ctx, - struct Depsgraph *depsgraph, - struct Main *bmain, - struct Scene *scene, - struct ViewLayer *view_layer); +void BKE_scene_graph_update_tagged(struct Depsgraph *depsgraph, + struct Main *bmain); + +void BKE_scene_graph_update_for_newframe(struct Depsgraph *depsgraph, + struct Main *bmain); struct SceneRenderView *BKE_scene_add_render_view(struct Scene *sce, const char *name); bool BKE_scene_remove_render_view(struct Scene *scene, struct SceneRenderView *srv); diff --git a/source/blender/blenkernel/BKE_workspace.h b/source/blender/blenkernel/BKE_workspace.h index 9ba4105edda..32a9bcbec61 100644 --- a/source/blender/blenkernel/BKE_workspace.h +++ b/source/blender/blenkernel/BKE_workspace.h @@ -125,8 +125,7 @@ bool BKE_workspace_use_scene_settings_get(const struct WorkSpace *workspace) GET void BKE_workspace_use_scene_settings_set(struct WorkSpace *workspace, bool value) SETTER_ATTRS; /* Update / evaluate */ -void BKE_workspace_update_tagged(struct EvaluationContext *eval_ctx, - struct Main *bmain, +void BKE_workspace_update_tagged(struct Main *bmain, struct WorkSpace *workspace, struct Scene *scene); diff --git a/source/blender/blenkernel/intern/anim.c b/source/blender/blenkernel/intern/anim.c index 62df97c6afa..0b964145c7f 100644 --- a/source/blender/blenkernel/intern/anim.c +++ b/source/blender/blenkernel/intern/anim.c @@ -278,8 +278,6 @@ void animviz_get_object_motionpaths(Object *ob, ListBase *targets) /* update scene for current frame */ static void motionpaths_calc_update_scene(Main *bmain, - Scene *scene, - ViewLayer *view_layer, struct Depsgraph *depsgraph) { /* Do all updates @@ -292,7 +290,7 @@ static void motionpaths_calc_update_scene(Main *bmain, * * TODO(sergey): Use evaluation context dedicated to motion paths. */ - BKE_scene_graph_update_for_newframe(bmain->eval_ctx, depsgraph, bmain, scene, view_layer); + BKE_scene_graph_update_for_newframe(depsgraph, bmain); } /* ........ */ @@ -369,7 +367,7 @@ static void motionpaths_calc_bake_targets(Scene *scene, ListBase *targets) /* calculate path over requested range */ for (CFRA = sfra; CFRA <= efra; CFRA++) { /* update relevant data for new frame */ - motionpaths_calc_update_scene(bmain, scene, eval_ctx->view_layer, eval_ctx->depsgraph); + motionpaths_calc_update_scene(bmain, eval_ctx->depsgraph); /* perform baking for targets */ motionpaths_calc_bake_targets(scene, targets); @@ -377,7 +375,7 @@ static void motionpaths_calc_bake_targets(Scene *scene, ListBase *targets) /* reset original environment */ CFRA = cfra; - motionpaths_calc_update_scene(bmain, scene, eval_ctx->view_layer, eval_ctx->depsgraph); + motionpaths_calc_update_scene(bmain, eval_ctx->depsgraph); /* clear recalc flags from targets */ for (mpt = targets->first; mpt; mpt = mpt->next) { diff --git a/source/blender/blenkernel/intern/pointcache.c b/source/blender/blenkernel/intern/pointcache.c index afaf68dde24..50314daa014 100644 --- a/source/blender/blenkernel/intern/pointcache.c +++ b/source/blender/blenkernel/intern/pointcache.c @@ -3679,7 +3679,7 @@ void BKE_ptcache_bake(PTCacheBaker *baker) stime = ptime = PIL_check_seconds_timer(); for (int fr = CFRA; fr <= endframe; fr += baker->quick_step, CFRA = fr) { - BKE_scene_graph_update_for_newframe(G.main->eval_ctx, depsgraph, bmain, scene, view_layer); + BKE_scene_graph_update_for_newframe(depsgraph, bmain); if (baker->update_progress) { float progress = ((float)(CFRA - startframe)/(float)(endframe - startframe)); @@ -3765,7 +3765,7 @@ void BKE_ptcache_bake(PTCacheBaker *baker) CFRA = cfrao; if (bake) { /* already on cfra unless baking */ - BKE_scene_graph_update_for_newframe(bmain->eval_ctx, depsgraph, bmain, scene, view_layer); + BKE_scene_graph_update_for_newframe(depsgraph, bmain); } /* TODO: call redraw all windows somehow */ diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index 596599deb75..9a7c10d31de 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -1387,17 +1387,12 @@ static void prepare_mesh_for_viewport_render( /* TODO(sergey): This actually should become view_layer_graph or so. * Same applies to update_for_newframe. */ -void BKE_scene_graph_update_tagged(EvaluationContext *eval_ctx, - Depsgraph *depsgraph, - Main *bmain, - Scene *scene, - ViewLayer *view_layer) +void BKE_scene_graph_update_tagged(Depsgraph *depsgraph, + Main *bmain) { - /* TODO(sergey): Temporary solution for until pipeline.c is ported. */ - if (view_layer == NULL) { - view_layer = DEG_get_evaluated_view_layer(depsgraph); - BLI_assert(view_layer != NULL); - } + Scene *scene = DEG_get_input_scene(depsgraph); + ViewLayer *view_layer = DEG_get_input_view_layer(depsgraph); + /* TODO(sergey): Some functions here are changing global state, * for example, clearing update tags from bmain. */ @@ -1412,7 +1407,7 @@ void BKE_scene_graph_update_tagged(EvaluationContext *eval_ctx, /* Update all objects: drivers, matrices, displists, etc. flags set * by depgraph or manual, no layer check here, gets correct flushed. */ - DEG_evaluate_on_refresh(eval_ctx, depsgraph); + DEG_evaluate_on_refresh(depsgraph); /* Update sound system animation (TODO, move to depsgraph). */ BKE_sound_update_scene(bmain, scene); /* Inform editors about possible changes. */ @@ -1422,12 +1417,12 @@ void BKE_scene_graph_update_tagged(EvaluationContext *eval_ctx, } /* applies changes right away, does all sets too */ -void BKE_scene_graph_update_for_newframe(EvaluationContext *eval_ctx, - Depsgraph *depsgraph, - Main *bmain, - Scene *scene, - ViewLayer *view_layer) +void BKE_scene_graph_update_for_newframe(Depsgraph *depsgraph, + Main *bmain) { + Scene *scene = DEG_get_input_scene(depsgraph); + ViewLayer *view_layer = DEG_get_input_view_layer(depsgraph); + /* TODO(sergey): Some functions here are changing global state, * for example, clearing update tags from bmain. */ @@ -1452,7 +1447,7 @@ void BKE_scene_graph_update_for_newframe(EvaluationContext *eval_ctx, /* Update all objects: drivers, matrices, displists, etc. flags set * by depgraph or manual, no layer check here, gets correct flushed. */ - DEG_evaluate_on_framechange(eval_ctx, bmain, depsgraph, ctime); + DEG_evaluate_on_framechange(bmain, depsgraph, ctime); /* Update sound system animation (TODO, move to depsgraph). */ BKE_sound_update_scene(bmain, scene); /* Notify editors and python about recalc. */ diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index e7f34257d04..58b83a754d8 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -3334,7 +3334,7 @@ static ImBuf *seq_render_scene_strip(const SeqRenderData *context, Sequence *seq /* opengl offscreen render */ RenderEngineType *engine_type = RE_engines_find(scene->view_render.engine_id); depsgraph = BKE_scene_get_depsgraph(scene, view_layer, true); - BKE_scene_graph_update_for_newframe(context->eval_ctx, depsgraph, context->bmain, scene, view_layer); + BKE_scene_graph_update_for_newframe(depsgraph, context->bmain); ibuf = sequencer_view3d_cb( /* set for OpenGL render (NULL when scrubbing) */ context->eval_ctx, scene, view_layer, engine_type, @@ -3425,7 +3425,7 @@ finally: scene->r.subframe = orig_data.subframe; if (is_frame_update && (depsgraph != NULL)) { - BKE_scene_graph_update_for_newframe(context->eval_ctx, depsgraph, context->bmain, scene, view_layer); + BKE_scene_graph_update_for_newframe(depsgraph, context->bmain); } #ifdef DURIAN_CAMERA_SWITCH diff --git a/source/blender/blenkernel/intern/workspace.c b/source/blender/blenkernel/intern/workspace.c index 26a680c881f..afceea9dd5f 100644 --- a/source/blender/blenkernel/intern/workspace.c +++ b/source/blender/blenkernel/intern/workspace.c @@ -499,8 +499,7 @@ void BKE_workspace_use_scene_settings_set(WorkSpace *workspace, bool value) /* Update / evaluate */ -void BKE_workspace_update_tagged(struct EvaluationContext *eval_ctx, - Main *bmain, +void BKE_workspace_update_tagged(Main *bmain, WorkSpace *workspace, Scene *scene) { @@ -508,7 +507,7 @@ void BKE_workspace_update_tagged(struct EvaluationContext *eval_ctx, struct Depsgraph *depsgraph = BKE_scene_get_depsgraph(scene, view_layer, true); - BKE_scene_graph_update_tagged(eval_ctx, depsgraph, bmain, scene, view_layer); + BKE_scene_graph_update_tagged(depsgraph, bmain); } |