diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2017-11-03 20:04:50 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2017-11-06 11:24:24 +0300 |
commit | ad557da78ac9426babcfa7cf28e54471747ed4c3 (patch) | |
tree | 9a9243c4112a976c2d8857ac01ad688d1dbbb444 /source/blender | |
parent | 90738e14414ce979146fd20d2a31a3c5e5eebce9 (diff) |
Depsgraph: Use explicit graph API for point cache
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/blenkernel/BKE_pointcache.h | 1 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/pointcache.c | 5 | ||||
-rw-r--r-- | source/blender/editors/physics/physics_pointcache.c | 1 | ||||
-rw-r--r-- | source/blender/render/intern/source/pipeline.c | 1 |
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; |