Commit: 357f1e74f768f03914ad7236fbba2ee83bdeb807
Author: Joshua Leung
Date:   Mon Dec 29 15:18:41 2014 +1300
Branches: depsgraph_refactor
https://developer.blender.org/rB357f1e74f768f03914ad7236fbba2ee83bdeb807

Temporary placeholder solution for getting dependencies on geometry working 
again

The real solution here is to ensure that we have the proper/intended entry/exit 
ops
(with the corresponding opcodes) included in the graph

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

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

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

diff --git a/source/blender/depsgraph/intern/depsgraph_build.cpp 
b/source/blender/depsgraph/intern/depsgraph_build.cpp
index d4da393..24ca414 100644
--- a/source/blender/depsgraph/intern/depsgraph_build.cpp
+++ b/source/blender/depsgraph/intern/depsgraph_build.cpp
@@ -281,6 +281,11 @@ void 
DepsgraphNodeBuilder::verify_entry_exit_operations(ComponentDepsNode *node)
        else if (source_ops.size() > 1) {
                /* multiple unlinked op, add a barrier node as a single entry 
point */
                // XXX: problematic for drivers
+               node->entry_operation = add_operation_node(node, 
DEPSOP_TYPE_INIT, NULL, DEG_OPCODE_NOOP, "Entry");
+               for (OperationsVector::const_iterator it = source_ops.begin(); 
it != source_ops.end(); ++it) {
+                       OperationDepsNode *op_node = *it;
+                       m_graph->add_new_relation(node->entry_operation, 
op_node, DEPSREL_TYPE_OPERATION, "Component entry relation");
+               }
        }
        
        if (exit_ops.size() == 1) {
@@ -302,6 +307,11 @@ void 
DepsgraphNodeBuilder::verify_entry_exit_operations(ComponentDepsNode *node)
        else if (sink_ops.size() > 1) {
                /* multiple unlinked ops, add a barrier node as a single exit 
point */
                // XXX: problematic for drivers
+               node->exit_operation = add_operation_node(node, 
DEPSOP_TYPE_OUT, NULL, DEG_OPCODE_NOOP, "Exit");
+               for (OperationsVector::const_iterator it = sink_ops.begin(); it 
!= sink_ops.end(); ++it) {
+                       OperationDepsNode *op_node = *it;
+                       m_graph->add_new_relation(op_node, 
node->exit_operation, DEPSREL_TYPE_OPERATION, "Component exit relation");
+               }
        }
        
        BLI_assert(node->operations.size() == 0 || node->entry_operation != 
NULL);

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

Reply via email to