Commit: 849cae8f02c1ce4a6c3875bb957e4279ce6999ee
Author: Joshua Leung
Date:   Tue Dec 16 01:41:52 2014 +1300
Branches: depsgraph_refactor
https://developer.blender.org/rB849cae8f02c1ce4a6c3875bb957e4279ce6999ee

Prepare find_operation() for handling opcodes too

Doesn't work yet, but is necessary to get the code compiling

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

M       source/blender/depsgraph/intern/depsgraph_build.cpp
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 e03bd9c..dcd19bc 100644
--- a/source/blender/depsgraph/intern/depsgraph_build.cpp
+++ b/source/blender/depsgraph/intern/depsgraph_build.cpp
@@ -359,8 +359,7 @@ OperationDepsNode 
*DepsgraphRelationBuilder::find_node(const OperationKey &key)
        if (!comp_node)
                return NULL;
        
-       // XXX...
-       OperationDepsNode *op_node = comp_node->find_operation(key.name);
+       OperationDepsNode *op_node = comp_node->find_operation(key.opcode, 
key.name);
        return op_node;
 }
 
diff --git a/source/blender/depsgraph/intern/depsnode_component.cpp 
b/source/blender/depsgraph/intern/depsnode_component.cpp
index facede3..59306f8 100644
--- a/source/blender/depsgraph/intern/depsnode_component.cpp
+++ b/source/blender/depsgraph/intern/depsnode_component.cpp
@@ -85,15 +85,16 @@ ComponentDepsNode::~ComponentDepsNode()
        clear_operations();
 }
 
-OperationDepsNode *ComponentDepsNode::find_operation(const string &name) const
+OperationDepsNode *ComponentDepsNode::find_operation(eDepsOperation_Code 
opcode, const string &name) const
 {
+       // FIXME: how to perform this lookup?
        OperationMap::const_iterator it = this->operations.find(name);
        return it != this->operations.end() ? it->second : NULL;
 }
 
 OperationDepsNode *ComponentDepsNode::add_operation(eDepsOperation_Type 
optype, DepsEvalOperationCb op, eDepsOperation_Code opcode, const string &name)
 {
-       OperationDepsNode *op_node = find_operation(name);
+       OperationDepsNode *op_node = find_operation(opcode, name);
        if (!op_node) {
                DepsNodeFactory *factory = 
DEG_get_node_factory(DEPSNODE_TYPE_OPERATION);
                op_node = (OperationDepsNode 
*)factory->create_node(this->owner->id, "", name);
diff --git a/source/blender/depsgraph/intern/depsnode_component.h 
b/source/blender/depsgraph/intern/depsnode_component.h
index a8a5f13..0d5403f 100644
--- a/source/blender/depsgraph/intern/depsnode_component.h
+++ b/source/blender/depsgraph/intern/depsnode_component.h
@@ -55,7 +55,8 @@ struct ComponentDepsNode : public DepsNode {
        void copy(DepsgraphCopyContext *dcc, const ComponentDepsNode *src);
        ~ComponentDepsNode();
        
-       OperationDepsNode *find_operation(const string &name) const;
+       OperationDepsNode *find_operation(eDepsOperation_Code opcode, const 
string &name) const;
+       
        /* Create a new node for representing an operation and add this to graph
         * ! If an existing node is found, it will be modified. This helps when 
node may 
         *   have been partially created earlier (e.g. parent ref before parent 
item is added)
@@ -66,6 +67,7 @@ struct ComponentDepsNode : public DepsNode {
         * < name: Identifier for operation - used to find/locate it again
         */
        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