Commit: 39930332a4c55ff42c6e33f545b322a9b9070648
Author: Joshua Leung
Date:   Tue Jan 13 12:50:08 2015 +1300
Branches: depsgraph_refactor
https://developer.blender.org/rB39930332a4c55ff42c6e33f545b322a9b9070648

Depsgraph: Code cleanup for single operation components

If a component has just a single operation and no declared entry/exit operation,
get_entry/exit_operation() now automatically just uses the operation that does
exist.

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

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

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

diff --git a/source/blender/depsgraph/intern/depsgraph_build.h 
b/source/blender/depsgraph/intern/depsgraph_build.h
index 6217095..648d4b8 100644
--- a/source/blender/depsgraph/intern/depsgraph_build.h
+++ b/source/blender/depsgraph/intern/depsgraph_build.h
@@ -327,10 +327,26 @@ BLI_INLINE OperationDepsNode 
*get_exit_operation(OperationDepsNode *node)
 { return node; }
 
 BLI_INLINE OperationDepsNode *get_entry_operation(ComponentDepsNode *node)
-{ return node ? node->entry_operation : NULL; }
+{
+       if (node) {
+               if (node->entry_operation)
+                       return node->entry_operation;
+               else if (node->operations.size() == 1)
+                       return node->operations.begin()->second;
+       }
+       return NULL;
+}
 
 BLI_INLINE OperationDepsNode *get_exit_operation(ComponentDepsNode *node)
-{ return node ? node->exit_operation : NULL; }
+{
+       if (node) {
+               if (node->exit_operation)
+                       return node->exit_operation;
+               else if (node->operations.size() == 1)
+                       return node->operations.begin()->second;
+       }
+       return NULL;
+}
 
 template <typename KeyFrom, typename KeyTo>
 void DepsgraphRelationBuilder::add_relation(const KeyFrom &key_from, const 
KeyTo &key_to,
diff --git a/source/blender/depsgraph/intern/depsgraph_build_nodes.cpp 
b/source/blender/depsgraph/intern/depsgraph_build_nodes.cpp
index 13c053d..f41a123 100644
--- a/source/blender/depsgraph/intern/depsgraph_build_nodes.cpp
+++ b/source/blender/depsgraph/intern/depsgraph_build_nodes.cpp
@@ -352,13 +352,6 @@ void DepsgraphNodeBuilder::build_animdata(ID *id)
                                                    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)
                }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to