[Bf-blender-cvs] [fdd9990] master: Depsgraph: A bit of experiment with skipping where_is_bone if channels is taged as done
Sergey Sharybin
noreply at git.blender.org
Tue May 10 17:31:36 CEST 2016
Commit: fdd999042b930f24118cd0967a70e1ca472f3957
Author: Sergey Sharybin
Date: Tue May 10 17:30:19 2016 +0200
Branches: master
https://developer.blender.org/rBfdd999042b930f24118cd0967a70e1ca472f3957
Depsgraph: A bit of experiment with skipping where_is_bone if channels is taged as done
This is what old dependency graph was doing and apparently this avoids some updates,
however it's not really clear why those nodes are considering done. Maybe just because
of the way how relations are working. But needs a closer investigation.
===================================================================
M source/blender/blenkernel/intern/armature_update.c
===================================================================
diff --git a/source/blender/blenkernel/intern/armature_update.c b/source/blender/blenkernel/intern/armature_update.c
index ceda9f0..34d9962 100644
--- a/source/blender/blenkernel/intern/armature_update.c
+++ b/source/blender/blenkernel/intern/armature_update.c
@@ -619,7 +619,9 @@ void BKE_pose_eval_bone(EvaluationContext *UNUSED(eval_ctx),
else {
/* TODO(sergey): Use time source node for time. */
float ctime = BKE_scene_frame_get(scene); /* not accurate... */
- BKE_pose_where_is_bone(scene, ob, pchan, ctime, 1);
+ if ((pchan->flag & POSE_DONE) == 0) {
+ BKE_pose_where_is_bone(scene, ob, pchan, ctime, 1);
+ }
}
}
}
@@ -636,7 +638,9 @@ void BKE_pose_constraints_evaluate(EvaluationContext *UNUSED(eval_ctx),
}
else {
float ctime = BKE_scene_frame_get(scene); /* not accurate... */
- BKE_pose_where_is_bone(scene, ob, pchan, ctime, 1);
+ if ((pchan->flag & POSE_DONE) == 0) {
+ BKE_pose_where_is_bone(scene, ob, pchan, ctime, 1);
+ }
}
}
More information about the Bf-blender-cvs
mailing list