Fix T59495, T59992, T59904, T59178, T60598: broken keyframed value editing.
This removes a bunch of animation/driver evaluations and recalc flags that should be redundant in the new depsgraph, and were incorrectly affecting the evaluated scene in a permanent way. Still two cases that could be removed if the depsgraph is improved, in BKE_object_handle_data_update and BKE_cachefile_update_frame. For physics subframe interpolation there are also still calls to BKE_object_where_is_calc that should ideally be removed as well, though they are not known to cause keyframing bugs. Differential Revision: https://developer.blender.org/D4274
This commit is contained in:
@@ -132,12 +132,6 @@ void deg_graph_build_finalize(Main *bmain, Depsgraph *graph)
|
||||
ID *id = id_node->id_orig;
|
||||
id_node->finalize_build(graph);
|
||||
int flag = 0;
|
||||
if ((id->recalc & ID_RECALC_ALL)) {
|
||||
AnimData *adt = BKE_animdata_from_id(id);
|
||||
if (adt != NULL && (adt->recalc & ADT_RECALC_ANIM) != 0) {
|
||||
flag |= ID_RECALC_ANIMATION;
|
||||
}
|
||||
}
|
||||
/* Tag rebuild if special evaluation flags changed. */
|
||||
if (id_node->eval_flags != id_node->previous_eval_flags) {
|
||||
flag |= ID_RECALC_TRANSFORM | ID_RECALC_GEOMETRY;
|
||||
|
||||
@@ -166,13 +166,6 @@ void DepsgraphNodeBuilder::build_rig(Object *object, bool is_object_visible)
|
||||
if (object->pose == NULL || (object->pose->flag & POSE_RECALC)) {
|
||||
/* By definition, no need to tag depsgraph as dirty from here, so we can pass NULL bmain. */
|
||||
BKE_pose_rebuild(NULL, object, armature, true);
|
||||
/* XXX: Without this animation gets lost in certain circumstances
|
||||
* after loading file. Need to investigate further since it does
|
||||
* not happen with simple scenes..
|
||||
*/
|
||||
if (object->adt) {
|
||||
object->adt->recalc |= ADT_RECALC_ANIM;
|
||||
}
|
||||
}
|
||||
/* Speed optimization for animation lookups. */
|
||||
if (object->pose != NULL) {
|
||||
|
||||
Reference in New Issue
Block a user