MCPcopy Create free account
hub / github.com/ImageEngine/cortex / addShaders

Method addShaders

src/IECoreScene/ShaderNetworkAlgo.cpp:66–95  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

64//////////////////////////////////////////////////////////////////////////
65
66ShaderNetwork::Parameter ShaderNetworkAlgo::addShaders( ShaderNetwork *network, const ShaderNetwork *sourceNetwork, bool connections )
67{
68 std::unordered_map<InternedString, InternedString> handleMap;
69
70 for( const auto &s : sourceNetwork->shaders() )
71 {
72 handleMap[s.first] = network->addShader( s.first, s.second.get() );
73 }
74
75 if( connections )
76 {
77 for( const auto &s : sourceNetwork->shaders() )
78 {
79 for( const auto &c : sourceNetwork->inputConnections( s.first ) )
80 {
81 network->addConnection(
82 ShaderNetwork::Connection(
83 ShaderNetwork::Parameter( handleMap[c.source.shader], c.source.name ),
84 ShaderNetwork::Parameter( handleMap[c.destination.shader], c.destination.name )
85 )
86 );
87 }
88 }
89 }
90
91 return ShaderNetwork::Parameter(
92 handleMap[sourceNetwork->getOutput().shader],
93 sourceNetwork->getOutput().name
94 );
95}
96
97//////////////////////////////////////////////////////////////////////////
98// `removeUnusedShaders()`

Callers 1

testAddShadersMethod · 0.80

Calls 7

ConnectionFunction · 0.85
ParameterFunction · 0.85
shadersMethod · 0.45
addShaderMethod · 0.45
getMethod · 0.45
inputConnectionsMethod · 0.45
addConnectionMethod · 0.45

Tested by 1

testAddShadersMethod · 0.64