[Bf-blender-cvs] [ad557da78ac] blender2.8: Depsgraph: Use explicit graph API for point cache
Sergey Sharybin
noreply at git.blender.org
Mon Nov 6 12:40:20 CET 2017
Commit: ad557da78ac9426babcfa7cf28e54471747ed4c3
Author: Sergey Sharybin
Date: Fri Nov 3 18:04:50 2017 +0100
Branches: blender2.8
https://developer.blender.org/rBad557da78ac9426babcfa7cf28e54471747ed4c3
Depsgraph: Use explicit graph API for point cache
===================================================================
M source/blender/blenkernel/BKE_pointcache.h
M source/blender/blenkernel/intern/pointcache.c
M source/blender/editors/physics/physics_pointcache.c
M source/blender/render/intern/source/pipeline.c
===================================================================
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;
More information about the Bf-blender-cvs
mailing list