[Bf-blender-cvs] [628f677] depsgraph_refactor: "Done" callback for object transforms was missing

Joshua Leung noreply at git.blender.org
Thu Dec 18 05:09:25 CET 2014


Commit: 628f6774b71b3ef9a380dd0b004582efbce9fa3d
Author: Joshua Leung
Date:   Thu Dec 18 16:04:08 2014 +1300
Branches: depsgraph_refactor
https://developer.blender.org/rB628f6774b71b3ef9a380dd0b004582efbce9fa3d

"Done" callback for object transforms was missing

===================================================================

M	source/blender/blenkernel/BKE_object.h
M	source/blender/blenkernel/intern/object_update.c
M	source/blender/depsgraph/intern/depsgraph_build_nodes.cpp
M	source/blender/depsgraph/intern/depsgraph_type_defines.cpp

===================================================================

diff --git a/source/blender/blenkernel/BKE_object.h b/source/blender/blenkernel/BKE_object.h
index 85cfe1e..2bd7d83 100644
--- a/source/blender/blenkernel/BKE_object.h
+++ b/source/blender/blenkernel/BKE_object.h
@@ -181,6 +181,7 @@ void BKE_object_eval_parent(struct EvaluationContext *eval_ctx,
 void BKE_object_eval_constraints(struct EvaluationContext *eval_ctx,
                                  struct Scene *scene,
                                  struct Object *ob);
+void BKE_object_eval_done(struct EvaluationContext *eval_ctx, struct Object *ob);
 
 /* (placeholder helpers for granular object transform updates) */
 void BKE_object_solve_parenting(struct Scene *scene, struct Object *ob, struct Object *par, float obmat[4][4], float slowmat[4][4],
diff --git a/source/blender/blenkernel/intern/object_update.c b/source/blender/blenkernel/intern/object_update.c
index 4b2d171..5a03c5f 100644
--- a/source/blender/blenkernel/intern/object_update.c
+++ b/source/blender/blenkernel/intern/object_update.c
@@ -90,6 +90,13 @@ void BKE_object_eval_constraints(EvaluationContext *eval_ctx,
 	(void) ob;  /* Ignored. */
 }
 
+void BKE_object_eval_done(EvaluationContext *eval_ctx, Object *ob)
+{
+	PRINT("%s on %s\n", __func__, ob->id.name);
+	(void) eval_ctx; /* Ignored. */
+	(void) ob;  /* Ignored. */
+}
+
 void BKE_object_eval_modifier(struct EvaluationContext *eval_ctx,
                               struct Scene *scene,
                               struct Object *ob,
diff --git a/source/blender/depsgraph/intern/depsgraph_build_nodes.cpp b/source/blender/depsgraph/intern/depsgraph_build_nodes.cpp
index 5b07312..5949611 100644
--- a/source/blender/depsgraph/intern/depsgraph_build_nodes.cpp
+++ b/source/blender/depsgraph/intern/depsgraph_build_nodes.cpp
@@ -301,6 +301,11 @@ void DepsgraphNodeBuilder::build_object_transform(Scene *scene, Object *ob)
 	add_operation_node(&ob->id, DEPSNODE_TYPE_TRANSFORM,
 	                   DEPSOP_TYPE_EXEC, function_bind(BKE_object_eval_uber_transform, _1, scene, ob),
 	                   DEG_OPCODE_OBJECT_UBEREVAL);
+	
+	/* object transform is done */
+	add_operation_node(&ob->id, DEPSNODE_TYPE_TRANSFORM,
+	                   DEPSOP_TYPE_POST, function_bind(BKE_object_eval_done, _1, ob),
+	                   DEG_OPCODE_TRANSFORM_FINAL);
 }
 
 /* == Constraints Graph Notes ==
diff --git a/source/blender/depsgraph/intern/depsgraph_type_defines.cpp b/source/blender/depsgraph/intern/depsgraph_type_defines.cpp
index 01060fc..08cc4c1 100644
--- a/source/blender/depsgraph/intern/depsgraph_type_defines.cpp
+++ b/source/blender/depsgraph/intern/depsgraph_type_defines.cpp
@@ -254,7 +254,14 @@ void BKE_particle_system_eval(EvaluationContext *eval_ctx, Object *ob, ParticleS
 
 void BKE_rigidbody_rebuild_sim(EvaluationContext *eval_ctx, Scene *scene) {}
 void BKE_rigidbody_eval_simulation(EvaluationContext *eval_ctx, Scene *scene) {}
-void BKE_rigidbody_object_sync_transforms(EvaluationContext *eval_ctx, Scene *scene, Object *ob) {}
+
+void BKE_rigidbody_object_sync_transforms(EvaluationContext *eval_ctx, Scene *scene, Object *ob)
+{
+	printf("%s on %s\n", __func__, ob->id.name);
+	
+	(void) eval_ctx; /* Ignored. */
+	(void) scene; /* Ignored. */
+}
 
 void BKE_mesh_eval_geometry(EvaluationContext *eval_ctx, Mesh *mesh) {}
 void BKE_mball_eval_geometry(EvaluationContext *eval_ctx, MetaBall *mball) {}




More information about the Bf-blender-cvs mailing list