Commit: 48d4b0dd050e4113cdb9348877d4fc7e0a876567
Author: Joshua Leung
Date:   Sat Dec 13 02:14:22 2014 +1300
Branches: depsgraph_refactor
https://developer.blender.org/rB48d4b0dd050e4113cdb9348877d4fc7e0a876567

Modified API's for adding operations to handle opcodes

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

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

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

diff --git a/source/blender/depsgraph/intern/depsgraph_build.cpp 
b/source/blender/depsgraph/intern/depsgraph_build.cpp
index 3560ad8..e03bd9c 100644
--- a/source/blender/depsgraph/intern/depsgraph_build.cpp
+++ b/source/blender/depsgraph/intern/depsgraph_build.cpp
@@ -215,19 +215,21 @@ ComponentDepsNode 
*DepsgraphNodeBuilder::add_component_node(ID *id, eDepsNode_Ty
 }
 
 OperationDepsNode *DepsgraphNodeBuilder::add_operation_node(ComponentDepsNode 
*comp_node,
-                                                            
eDepsOperation_Type optype, DepsEvalOperationCb op, const string &description)
+                                                            
eDepsOperation_Type optype, DepsEvalOperationCb op, 
+                                                            
eDepsOperation_Code opcode, const string &description)
 {
-       OperationDepsNode *op_node = comp_node->add_operation(optype, op, 
description);
+       OperationDepsNode *op_node = comp_node->add_operation(optype, op, 
opcode, description);
        m_graph->operations.push_back(op_node);
        return op_node;
 }
 
 OperationDepsNode *DepsgraphNodeBuilder::add_operation_node(ID *id, 
eDepsNode_Type comp_type, const string &comp_name,
-                                                            
eDepsOperation_Type optype, DepsEvalOperationCb op, const string &description)
+                                                            
eDepsOperation_Type optype, DepsEvalOperationCb op,
+                                                            
eDepsOperation_Code opcode, const string &description)
 {
        ComponentDepsNode *comp_node = add_component_node(id, comp_type, 
comp_name);
        
-       OperationDepsNode *op_node = comp_node->add_operation(optype, op, 
description);
+       OperationDepsNode *op_node = comp_node->add_operation(optype, op, 
opcode, description);
        m_graph->operations.push_back(op_node);
        
        return op_node;
@@ -260,7 +262,7 @@ void 
DepsgraphNodeBuilder::verify_entry_exit_operations(ComponentDepsNode *node)
        }
        else if (entry_ops.size() > 1) {
                /* multiple entry ops, add a barrier node as a single entry 
point */
-               node->entry_operation = add_operation_node(node, 
DEPSOP_TYPE_INIT, NULL, "Entry");
+               node->entry_operation = add_operation_node(node, 
DEPSOP_TYPE_INIT, NULL, DEG_OPCODE_NOOP, "Entry");
                for (OperationsVector::const_iterator it = entry_ops.begin(); 
it != entry_ops.end(); ++it) {
                        OperationDepsNode *op_node = *it;
                        m_graph->add_new_relation(node->entry_operation, 
op_node, DEPSREL_TYPE_OPERATION, "Component entry relation");
@@ -273,7 +275,7 @@ void 
DepsgraphNodeBuilder::verify_entry_exit_operations(ComponentDepsNode *node)
        }
        else if (exit_ops.size() > 1) {
                /* multiple exit ops, add a barrier node as a single exit point 
*/
-               node->exit_operation = add_operation_node(node, 
DEPSOP_TYPE_OUT, NULL, "Exit");
+               node->exit_operation = add_operation_node(node, 
DEPSOP_TYPE_OUT, NULL, DEG_OPCODE_NOOP, "Exit");
                for (OperationsVector::const_iterator it = exit_ops.begin(); it 
!= exit_ops.end(); ++it) {
                        OperationDepsNode *op_node = *it;
                        m_graph->add_new_relation(op_node, 
node->exit_operation, DEPSREL_TYPE_OPERATION, "Component exit relation");
@@ -357,6 +359,7 @@ OperationDepsNode 
*DepsgraphRelationBuilder::find_node(const OperationKey &key)
        if (!comp_node)
                return NULL;
        
+       // XXX...
        OperationDepsNode *op_node = comp_node->find_operation(key.name);
        return op_node;
 }
diff --git a/source/blender/depsgraph/intern/depsgraph_build.h 
b/source/blender/depsgraph/intern/depsgraph_build.h
index 0fa1b6a..ff22b01 100644
--- a/source/blender/depsgraph/intern/depsgraph_build.h
+++ b/source/blender/depsgraph/intern/depsgraph_build.h
@@ -67,14 +67,14 @@ struct DepsgraphNodeBuilder {
        
        ComponentDepsNode *add_component_node(ID *id, eDepsNode_Type comp_type, 
const string &comp_name = "");
        
-       OperationDepsNode *add_operation_node(ComponentDepsNode *comp_node,
-                                             eDepsOperation_Type optype, 
DepsEvalOperationCb op, const string &description);
-       OperationDepsNode *add_operation_node(ID *id, eDepsNode_Type comp_type, 
const string &comp_name,
-                                             eDepsOperation_Type optype, 
DepsEvalOperationCb op, const string &description);
-       OperationDepsNode *add_operation_node(ID *id, eDepsNode_Type comp_type,
-                                             eDepsOperation_Type optype, 
DepsEvalOperationCb op, const string &description)
+       OperationDepsNode *add_operation_node(ComponentDepsNode *comp_node, 
eDepsOperation_Type optype,
+                                             DepsEvalOperationCb op, 
eDepsOperation_Code opcode, const string &description = "");
+       OperationDepsNode *add_operation_node(ID *id, eDepsNode_Type comp_type, 
const string &comp_name, eDepsOperation_Type optype,
+                                             DepsEvalOperationCb op, 
eDepsOperation_Code opcode, const string &description = "");
+       OperationDepsNode *add_operation_node(ID *id, eDepsNode_Type comp_type, 
eDepsOperation_Type optype,
+                                             DepsEvalOperationCb op, 
eDepsOperation_Code opcode, const string &description = "")
        {
-               return add_operation_node(id, comp_type, "", optype, op, 
description);
+               return add_operation_node(id, comp_type, "", optype, op, 
opcode, description);
        }
        
        void verify_entry_exit_operations();
diff --git a/source/blender/depsgraph/intern/depsnode_component.cpp 
b/source/blender/depsgraph/intern/depsnode_component.cpp
index 647ed5d..facede3 100644
--- a/source/blender/depsgraph/intern/depsnode_component.cpp
+++ b/source/blender/depsgraph/intern/depsnode_component.cpp
@@ -91,7 +91,7 @@ OperationDepsNode *ComponentDepsNode::find_operation(const 
string &name) const
        return it != this->operations.end() ? it->second : NULL;
 }
 
-OperationDepsNode *ComponentDepsNode::add_operation(eDepsOperation_Type 
optype, DepsEvalOperationCb op, const string &name)
+OperationDepsNode *ComponentDepsNode::add_operation(eDepsOperation_Type 
optype, DepsEvalOperationCb op, eDepsOperation_Code opcode, const string &name)
 {
        OperationDepsNode *op_node = find_operation(name);
        if (!op_node) {
@@ -106,6 +106,7 @@ OperationDepsNode 
*ComponentDepsNode::add_operation(eDepsOperation_Type optype,
        /* attach extra data */
        op_node->evaluate = op;
        op_node->optype = optype;
+       op_node->opcode = opcode;
        op_node->name = name;
        
        return op_node;
diff --git a/source/blender/depsgraph/intern/depsnode_component.h 
b/source/blender/depsgraph/intern/depsnode_component.h
index 4ee31b4..2ce3b4b 100644
--- a/source/blender/depsgraph/intern/depsnode_component.h
+++ b/source/blender/depsgraph/intern/depsnode_component.h
@@ -64,7 +64,7 @@ struct ComponentDepsNode : public DepsNode {
         * < op: The operation to perform
         * < name: Identifier for operation - used to find/locate it again
         */
-       OperationDepsNode *add_operation(eDepsOperation_Type optype, 
DepsEvalOperationCb op, const string &name);
+       OperationDepsNode *add_operation(eDepsOperation_Type optype, 
DepsEvalOperationCb op, eDepsOperation_Code opcode, const string &name);
        void remove_operation(const string &name);
        void clear_operations();

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

Reply via email to