Fix linux build #33

Merged
Bogdan Nagirniak merged 7 commits from BogdanNagirniak/blender:matx-linux-build-fix into matx-export-material 2023-09-24 07:42:31 +02:00
2 changed files with 21 additions and 5 deletions
Showing only changes of commit f98d8a582c - Show all commits

View File

@ -69,7 +69,7 @@ NodeItem GroupOutputNodeParser::compute()
Vector<NodeItem> outputs;
for (int i = 0; i < values.size(); ++i) {
if (values[i]) {
outputs.append(create_output("output" + std::to_string(i + 1), values[i]));
outputs.append(create_output(out_name(node_->input_sockets()[i]), values[i]));
}
}
return outputs[socket_out_->index()];
@ -91,7 +91,7 @@ NodeItem GroupOutputNodeParser::compute_full()
NodeItem res = empty();
/* Checking if output was already computed */
res.output = graph_->getOutput("output" + std::to_string(socket_out_->index() + 1));
res.output = graph_->getOutput(out_name(socket_out_));
if (res.output) {
return res;
}
@ -103,6 +103,11 @@ NodeItem GroupOutputNodeParser::compute_full()
#endif
}
std::string GroupOutputNodeParser::out_name(const bNodeSocket *out_socket)
{
return MaterialX::createValidName(std::string("out_") + out_socket->name);
}
NodeItem GroupInputNodeParser::compute()
{
#ifdef USE_MATERIALX_NODEGRAPH
@ -114,7 +119,7 @@ NodeItem GroupInputNodeParser::compute()
if (value.value) {
value = group_parser_->create_node("constant", value.type(), {{"value", value}});
}
return create_input("input" + std::to_string(socket_out_->index() + 1), value);
return create_input(in_name(), value);
#else
return group_parser_->get_input_link(socket_out_->index(), to_type_);
BogdanNagirniak marked this conversation as resolved
Review

get_input_value(...
Otherwise, the input socket's default value is ignored.

`get_input_value(...` Otherwise, the input socket's default value is ignored.
#endif
@ -132,8 +137,8 @@ NodeItem GroupInputNodeParser::compute_full()
#ifdef USE_MATERIALX_NODEGRAPH
NodeItem res = empty();
/* Checking if output was already computed */
res.input = graph_->getInput("input" + std::to_string(socket_out_->index() + 1));
/* Checking if input was already computed */
res.input = graph_->getInput(in_name());
if (res.input) {
return res;
}
@ -145,4 +150,9 @@ NodeItem GroupInputNodeParser::compute_full()
#endif
}
std::string GroupInputNodeParser::in_name() const
{
return MaterialX::createValidName(std::string("in_") + socket_out_->name);
}
} // namespace blender::nodes::materialx

View File

@ -29,6 +29,9 @@ class GroupOutputNodeParser : public NodeParser {
using NodeParser::NodeParser;
NodeItem compute() override;
NodeItem compute_full() override;
private:
static std::string out_name(const bNodeSocket *out_socket);
};
class GroupInputNodeParser : public NodeParser {
@ -36,6 +39,9 @@ class GroupInputNodeParser : public NodeParser {
using NodeParser::NodeParser;
NodeItem compute() override;
NodeItem compute_full() override;
private:
std::string in_name() const;
};
} // namespace blender::nodes::materialx