[Bf-blender-cvs] [357f1e7] depsgraph_refactor: Temporary placeholder solution for getting dependencies on geometry working again

Joshua Leung noreply at git.blender.org
Tue Dec 30 00:53:01 CET 2014


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




More information about the Bf-blender-cvs mailing list