1212#include < MaterialXGenShader/TypeDesc.h>
1313#include < MaterialXGenShader/ShaderStage.h>
1414
15-
1615MATERIALX_NAMESPACE_BEGIN
1716
1817const string OslNetworkShaderGenerator::TARGET = " genoslnetwork" ;
@@ -56,20 +55,22 @@ ShaderPtr OslNetworkShaderGenerator::generate(const string& name, ElementPtr ele
5655 std::set<std::string> osoPaths;
5756
5857 // Walk the node graph, emitting shaders and param declarations.
59- for (auto && node : graph.getNodes ()) {
58+ for (auto && node : graph.getNodes ())
59+ {
6060 const string& nodeName = node->getName ();
6161
62- for (auto && input : node->getInputs ()) {
62+ for (auto && input : node->getInputs ())
63+ {
6364 string inputName = input->getName ();
6465 _syntax->makeValidName (inputName);
6566
6667 const ShaderOutput* connection = input->getConnection ();
67- if (!connection || connection->getNode () == &graph) {
68+ if (!connection || connection->getNode () == &graph)
69+ {
6870 if (!input->hasAuthoredValue ())
6971 continue ;
7072
71- if (input->getName () == " backsurfaceshader"
72- || input->getName () == " displacementshader" )
73+ if (input->getName () == " backsurfaceshader" || input->getName () == " displacementshader" )
7374 continue ; // FIXME: these aren't getting pruned by hasAuthoredValue
7475
7576 string value = _syntax->getValue (input);
@@ -78,30 +79,37 @@ ShaderPtr OslNetworkShaderGenerator::generate(const string& name, ElementPtr ele
7879
7980 // TODO: Figure out how to avoid special-casing struct-types in the generator, perhaps in the syntax?
8081 auto inputType = input->getType ();
81- if (inputType == Type::VECTOR2) {
82+ if (inputType == Type::VECTOR2)
83+ {
8284 auto parts = splitString (value, " " );
8385 emitLine (paramString (_syntax->getTypeName (Type::FLOAT), inputName + " .x" , parts[0 ]), stage, false );
8486 emitLine (paramString (_syntax->getTypeName (Type::FLOAT), inputName + " .y" , parts[1 ]), stage, false );
8587 }
86- else if (inputType == Type::VECTOR4) {
88+ else if (inputType == Type::VECTOR4)
89+ {
8790 auto parts = splitString (value, " " );
8891 emitLine (paramString (_syntax->getTypeName (Type::FLOAT), inputName + " .x" , parts[0 ]), stage, false );
8992 emitLine (paramString (_syntax->getTypeName (Type::FLOAT), inputName + " .y" , parts[1 ]), stage, false );
9093 emitLine (paramString (_syntax->getTypeName (Type::FLOAT), inputName + " .z" , parts[2 ]), stage, false );
91- emitLine (paramString (_syntax->getTypeName (Type::FLOAT), inputName + " .w" , parts[3 ]), stage, false );}
92- else if (inputType == Type::COLOR4) {
94+ emitLine (paramString (_syntax->getTypeName (Type::FLOAT), inputName + " .w" , parts[3 ]), stage, false );
95+ }
96+ else if (inputType == Type::COLOR4)
97+ {
9398 auto parts = splitString (value, " " );
9499 emitLine (paramString (_syntax->getTypeName (Type::COLOR3), inputName + " .rgb" , parts[0 ] + " " + parts[1 ] + " " + parts[2 ]), stage, false );
95100 emitLine (paramString (_syntax->getTypeName (Type::FLOAT), inputName + " .a" , parts[3 ]), stage, false );
96101 }
97- else {
102+ else
103+ {
98104 emitLine (paramString (_syntax->getTypeName (input->getType ()), inputName, value), stage, false );
99105 }
100- } else {
106+ }
107+ else
108+ {
101109 string connName = connection->getName ();
102110 _syntax->makeValidName (connName);
103111
104- string connect = connectString (connection->getNode ()->getName (), connName, nodeName, inputName);
112+ string connect = connectString (connection->getNode ()->getName (), connName, nodeName, inputName);
105113 // Save connect emits for the end, because they can't come
106114 // before both connected shaders have been declared.
107115 connections.push_back (connect);
@@ -121,24 +129,26 @@ ShaderPtr OslNetworkShaderGenerator::generate(const string& name, ElementPtr ele
121129 lastNodeName = nodeName;
122130 }
123131
124- if (!lastOutput) {
132+ if (!lastOutput)
133+ {
125134 printf (" Invalid shader\n " );
126135 return nullptr ;
127136 }
128137
129- for (auto && connect : connections) {
138+ for (auto && connect : connections)
139+ {
130140 emitLine (connect, stage, false );
131141 }
132142
133143 // During unit tests, wrap a special node that will add the output to Ci.
134- if (context.getOptions ().oslNetworkConnectCiWrapper ) {
144+ if (context.getOptions ().oslNetworkConnectCiWrapper )
145+ {
135146 emitLine (" shader setCi root ;" , stage, false );
136147 string connect = connectString (
137148 lastNodeName,
138149 lastOutput->getName (),
139150 " root" ,
140- lastOutput->getType ().getName () + " _input"
141- );
151+ lastOutput->getType ().getName () + " _input" );
142152 emitLine (connect, stage, false );
143153 }
144154
@@ -159,7 +169,6 @@ ShaderPtr OslNetworkShaderGenerator::generate(const string& name, ElementPtr ele
159169 return shader;
160170}
161171
162-
163172ShaderPtr OslNetworkShaderGenerator::createShader (const string& name, ElementPtr element, GenContext& context) const
164173{
165174 // Create the root shader graph
@@ -197,7 +206,6 @@ ShaderPtr OslNetworkShaderGenerator::createShader(const string& name, ElementPtr
197206 return shader;
198207}
199208
200-
201209namespace OSLNetwork
202210{
203211
@@ -206,6 +214,6 @@ const string UNIFORMS = "u";
206214const string INPUTS = " i" ;
207215const string OUTPUTS = " o" ;
208216
209- } // namespace OSL
217+ } // namespace OSLNetwork
210218
211219MATERIALX_NAMESPACE_END
0 commit comments