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-03 20:04:50 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2017-11-06 11:24:24 +0300
commitad557da78ac9426babcfa7cf28e54471747ed4c3 (patch)
tree9a9243c4112a976c2d8857ac01ad688d1dbbb444 /source/blender
parent90738e14414ce979146fd20d2a31a3c5e5eebce9 (diff)
Depsgraph: Use explicit graph API for point cache
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/blenkernel/BKE_pointcache.h1
-rw-r--r--source/blender/blenkernel/intern/pointcache.c5
-rw-r--r--source/blender/editors/physics/physics_pointcache.c1
-rw-r--r--source/blender/render/intern/source/pipeline.c1
4 files changed, 6 insertions, 2 deletions
diff --git a/source/blender/blenkernel/BKE_pointcache.h b/source/blender/blenkernel/BKE_pointcache.h
index 48fe8423233..ab2c3e863ef 100644
--- a/source/blender/blenkernel/BKE_pointcache.h
+++ b/source/blender/blenkernel/BKE_pointcache.h
@@ -188,6 +188,7 @@ typedef struct PTCacheBaker {
struct Main *main;
struct Scene *scene;
struct SceneLayer *scene_layer;
+ struct Depsgraph *depsgraph;
int bake;
int render;
int anim_init;
diff --git a/source/blender/blenkernel/intern/pointcache.c b/source/blender/blenkernel/intern/pointcache.c
index 35d65551483..4d1c2d8454b 100644
--- a/source/blender/blenkernel/intern/pointcache.c
+++ b/source/blender/blenkernel/intern/pointcache.c
@@ -3543,6 +3543,7 @@ void BKE_ptcache_bake(PTCacheBaker *baker)
Main *bmain = baker->main;
Scene *scene = baker->scene;
SceneLayer *scene_layer = baker->scene_layer;
+ struct Depsgraph *depsgraph = baker->depsgraph;
Scene *sce_iter; /* SETLOOPER macro only */
Base *base;
ListBase pidlist;
@@ -3661,7 +3662,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_update_for_newframe(G.main->eval_ctx, bmain, scene);
+ BKE_scene_graph_update_for_newframe(G.main->eval_ctx, depsgraph, bmain, scene);
if (baker->update_progress) {
float progress = ((float)(CFRA - startframe)/(float)(endframe - startframe));
@@ -3747,7 +3748,7 @@ void BKE_ptcache_bake(PTCacheBaker *baker)
CFRA = cfrao;
if (bake) { /* already on cfra unless baking */
- BKE_scene_update_for_newframe(bmain->eval_ctx, bmain, scene);
+ BKE_scene_graph_update_for_newframe(bmain->eval_ctx, depsgraph, bmain, scene);
}
/* TODO: call redraw all windows somehow */
diff --git a/source/blender/editors/physics/physics_pointcache.c b/source/blender/editors/physics/physics_pointcache.c
index 74946e3f44d..7dab98036c6 100644
--- a/source/blender/editors/physics/physics_pointcache.c
+++ b/source/blender/editors/physics/physics_pointcache.c
@@ -167,6 +167,7 @@ static PTCacheBaker *ptcache_baker_create(bContext *C, wmOperator *op, bool all)
baker->main = CTX_data_main(C);
baker->scene = CTX_data_scene(C);
baker->scene_layer = CTX_data_scene_layer(C);
+ baker->depsgraph = CTX_data_depsgraph(C);
baker->bake = RNA_boolean_get(op->ptr, "bake");
baker->render = 0;
baker->anim_init = 0;
diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c
index 61817f08f16..c774be672eb 100644
--- a/source/blender/render/intern/source/pipeline.c
+++ b/source/blender/render/intern/source/pipeline.c
@@ -3144,6 +3144,7 @@ static void update_physics_cache(Render *re, Scene *scene, SceneLayer *scene_lay
baker.main = re->main;
baker.scene = scene;
baker.scene_layer = scene_layer;
+ baker.depsgraph = BKE_scene_get_depsgraph(scene, scene_layer);
baker.bake = 0;
baker.render = 1;
baker.anim_init = 1;