[Bf-blender-cvs] [12f37fa] depsgraph_refactor: Fix: Animation works again

Joshua Leung noreply at git.blender.org
Thu Jan 1 01:53:05 CET 2015


Commit: 12f37fade791095d5d63d019cd233e0f82075b45
Author: Joshua Leung
Date:   Thu Jan 1 13:52:10 2015 +1300
Branches: depsgraph_refactor
https://developer.blender.org/rB12f37fade791095d5d63d019cd233e0f82075b45

Fix: Animation works again

Because most of the places using the animdata op coneected to the component,
the removal of verify_entry_exit_ops() broke this. For now, we'll manually
set this op as the entry/exit for the component.

===================================================================

M	source/blender/depsgraph/intern/depsgraph_build_nodes.cpp

===================================================================

diff --git a/source/blender/depsgraph/intern/depsgraph_build_nodes.cpp b/source/blender/depsgraph/intern/depsgraph_build_nodes.cpp
index 6fee6cb..1a75828 100644
--- a/source/blender/depsgraph/intern/depsgraph_build_nodes.cpp
+++ b/source/blender/depsgraph/intern/depsgraph_build_nodes.cpp
@@ -361,9 +361,18 @@ void DepsgraphNodeBuilder::build_animdata(ID *id)
 		
 		/* actions and NLA - as a single unit for now, as it gets complicated to schedule otherwise */
 		if ((adt->action) || (adt->nla_tracks.first)) {
-			add_operation_node(id, DEPSNODE_TYPE_ANIMATION,
-			                   DEPSOP_TYPE_EXEC, function_bind(BKE_animsys_eval_animdata, _1, id, time_src),
-			                   DEG_OPCODE_ANIMATION, id->name);
+			/* create the node */
+			OperationDepsNode *adt_op;
+			adt_op = add_operation_node(id, DEPSNODE_TYPE_ANIMATION,
+			                            DEPSOP_TYPE_EXEC, function_bind(BKE_animsys_eval_animdata, _1, id, time_src),
+			                            DEG_OPCODE_ANIMATION, id->name);
+			
+			/* ensure that the Animation component uses this as its entry/exit op,
+			 * or else it won't get hooked up
+			 */
+			// XXX: maybe this should be done via the type instead?
+			adt_op->owner->entry_operation = adt_op;
+			adt_op->owner->exit_operation  = adt_op;
 			
 			// TODO: for each channel affected, we might also want to add some support for running RNA update callbacks on them
 			// (which will be needed for proper handling of drivers later)




More information about the Bf-blender-cvs mailing list