Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/render/graph.cpp
| Show First 20 Lines • Show All 265 Lines • ▼ Show 20 Lines | if(surface_in->link) | ||||
| transform_multi_closure(surface_in->link->parent, NULL, false); | transform_multi_closure(surface_in->link->parent, NULL, false); | ||||
| if(volume_in->link) | if(volume_in->link) | ||||
| transform_multi_closure(volume_in->link->parent, NULL, true); | transform_multi_closure(volume_in->link->parent, NULL, true); | ||||
| finalized = true; | finalized = true; | ||||
| } | } | ||||
| } | } | ||||
| void ShaderGraph::find_dependencies(set<ShaderNode*>& dependencies, ShaderInput *input) | void ShaderGraph::find_dependencies(set<ShaderNode*>& dependencies, const ShaderInput *input) const | ||||
| { | { | ||||
| /* find all nodes that this input depends on directly and indirectly */ | /* find all nodes that this input depends on directly and indirectly */ | ||||
| ShaderNode *node = (input->link)? input->link->parent: NULL; | ShaderNode *node = (input->link)? input->link->parent: NULL; | ||||
| if(node) { | if(node && (dependencies.find(node) == dependencies.end())) { | ||||
| foreach(ShaderInput *in, node->inputs) | foreach(ShaderInput *in, node->inputs) | ||||
| find_dependencies(dependencies, in); | find_dependencies(dependencies, in); | ||||
| dependencies.insert(node); | dependencies.insert(node); | ||||
| } | } | ||||
| } | } | ||||
| void ShaderGraph::copy_nodes(set<ShaderNode*>& nodes, map<ShaderNode*, ShaderNode*>& nnodemap) | void ShaderGraph::copy_nodes(set<ShaderNode*>& nodes, map<ShaderNode*, ShaderNode*>& nnodemap) | ||||
| ▲ Show 20 Lines • Show All 672 Lines • Show Last 20 Lines | |||||