diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2017-11-07 18:29:31 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2017-11-07 18:36:25 +0300 |
commit | ba1197fe5e27f1cb7be281b3f20166a69050a273 (patch) | |
tree | d2852f12af386701db2f3c8dddf96b185efb248e /source/blender/blenkernel | |
parent | f16199d479189f1f142aebecf896182a7276c483 (diff) |
Depsgraph: Simplify some workarounds and make API closer to final
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/BKE_scene.h | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/context.c | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/scene.c | 10 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/sequencer.c | 6 |
4 files changed, 11 insertions, 9 deletions
diff --git a/source/blender/blenkernel/BKE_scene.h b/source/blender/blenkernel/BKE_scene.h index a27e743763d..3b550bd845d 100644 --- a/source/blender/blenkernel/BKE_scene.h +++ b/source/blender/blenkernel/BKE_scene.h @@ -230,7 +230,7 @@ void BKE_scene_allocate_depsgraph_hash(struct Scene *scene); void BKE_scene_ensure_depsgraph_hash(struct Scene *scene); void BKE_scene_free_depsgraph_hash(struct Scene *scene); -struct Depsgraph *BKE_scene_get_depsgraph(struct Scene *scene, struct SceneLayer *scene_layer); +struct Depsgraph *BKE_scene_get_depsgraph(struct Scene *scene, struct SceneLayer *scene_layer, bool allocate); #ifdef __cplusplus } diff --git a/source/blender/blenkernel/intern/context.c b/source/blender/blenkernel/intern/context.c index 00ad060dd1c..0bd79a50673 100644 --- a/source/blender/blenkernel/intern/context.c +++ b/source/blender/blenkernel/intern/context.c @@ -1260,7 +1260,7 @@ Depsgraph *CTX_data_depsgraph(const bContext *C) { Scene *scene = CTX_data_scene(C); SceneLayer *scene_layer = CTX_data_scene_layer(C); - return BKE_scene_get_depsgraph(scene, scene_layer); + return BKE_scene_get_depsgraph(scene, scene_layer, true); } void CTX_data_eval_ctx(const bContext *C, EvaluationContext *eval_ctx) diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index 9583719dca9..4b2e7eff866 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -2453,8 +2453,14 @@ void BKE_scene_free_depsgraph_hash(Scene *scene) /* Query depsgraph for a specific contexts. */ -Depsgraph *BKE_scene_get_depsgraph(Scene *scene, SceneLayer *scene_layer) +Depsgraph *BKE_scene_get_depsgraph(Scene *scene, + SceneLayer *scene_layer, + bool allocate) { (void) scene_layer; - return scene->depsgraph_legacy; + Depsgraph *depsgraph = scene->depsgraph_legacy; + if (depsgraph == NULL && allocate) { + scene->depsgraph_legacy = depsgraph = DEG_graph_new(); + } + return depsgraph; } diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index 9026baee183..11c3a5658e8 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -3264,11 +3264,7 @@ static ImBuf *seq_render_scene_strip(const SeqRenderData *context, Sequence *seq /* Get depsgraph and scene layer for the strip. */ SceneLayer *scene_layer = BKE_scene_layer_from_scene_get(scene); - Depsgraph *depsgraph = BKE_scene_get_depsgraph(scene, scene_layer); - /* TODO(sergey): This is a temporary solution. */ - if (depsgraph == NULL) { - scene->depsgraph_legacy = depsgraph = DEG_graph_new(); - } + Depsgraph *depsgraph = BKE_scene_get_depsgraph(scene, scene_layer, true); orig_data.scemode = scene->r.scemode; orig_data.cfra = scene->r.cfra; |