Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2016-05-10 18:30:19 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2016-05-10 18:30:19 +0300
commitfdd999042b930f24118cd0967a70e1ca472f3957 (patch)
tree638d11a0aa36738a589284974614971bd63f9c81 /source/blender/blenkernel/intern/armature_update.c
parente343e4a5baf0d608b81093debbdb9f8ca835bb18 (diff)
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.
Diffstat (limited to 'source/blender/blenkernel/intern/armature_update.c')
-rw-r--r--source/blender/blenkernel/intern/armature_update.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/armature_update.c b/source/blender/blenkernel/intern/armature_update.c
index ceda9f056bb..34d9962139c 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);
+ }
}
}