Fix cycles OSL node sockets not preserving values when updating with new code.

This commit is contained in:
2013-06-10 20:47:58 +00:00
parent 9d3ad07f14
commit 2213b92e48

View File

@@ -317,11 +317,6 @@ static PyObject *osl_update_node_func(PyObject *self, PyObject *args)
b_node.outputs.remove(b_sock);
b_sock = BL::NodeSocket(PointerRNA_NULL);
}
if (!b_sock) {
/* create new socket */
b_sock = b_node.outputs.create(socket_type.c_str(), param->name.c_str(), param->name.c_str());
}
}
else {
b_sock = b_node.inputs[param->name];
@@ -331,15 +326,16 @@ static PyObject *osl_update_node_func(PyObject *self, PyObject *args)
b_node.inputs.remove(b_sock);
b_sock = BL::NodeSocket(PointerRNA_NULL);
}
if (!b_sock) {
/* create new socket */
b_sock = b_node.inputs.create(socket_type.c_str(), param->name.c_str(), param->name.c_str());
}
}
/* set default value */
if(b_sock) {
if(!b_sock) {
/* create new socket */
if(param->isoutput)
b_sock = b_node.outputs.create(socket_type.c_str(), param->name.c_str(), param->name.c_str());
else
b_sock = b_node.inputs.create(socket_type.c_str(), param->name.c_str(), param->name.c_str());
/* set default value */
if(data_type == BL::NodeSocket::type_VALUE) {
set_float(b_sock.ptr, "default_value", default_float);
}