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-07 18:29:31 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2017-11-07 18:36:25 +0300
commitba1197fe5e27f1cb7be281b3f20166a69050a273 (patch)
treed2852f12af386701db2f3c8dddf96b185efb248e /source/blender/blenkernel
parentf16199d479189f1f142aebecf896182a7276c483 (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.h2
-rw-r--r--source/blender/blenkernel/intern/context.c2
-rw-r--r--source/blender/blenkernel/intern/scene.c10
-rw-r--r--source/blender/blenkernel/intern/sequencer.c6
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;