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.
This commit is contained in:
Sergey Sharybin 2016-05-10 17:30:19 +02:00
parent e343e4a5ba
commit fdd999042b
1 changed files with 6 additions and 2 deletions

View File

@ -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);
}
}
}