[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