[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