diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-06-11 00:47:58 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-06-11 00:47:58 +0400 |
commit | 2213b92e4818f4308adc49b9dafda0986127f270 (patch) | |
tree | b366b92618231a8b4628a2cca48ebd2291c6d612 /intern/cycles/blender/blender_python.cpp | |
parent | 9d3ad07f1417fdc959ee3d3e86a7bff1c2ee6d80 (diff) |
Fix cycles OSL node sockets not preserving values when updating with new code.
Diffstat (limited to 'intern/cycles/blender/blender_python.cpp')
-rw-r--r-- | intern/cycles/blender/blender_python.cpp | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/intern/cycles/blender/blender_python.cpp b/intern/cycles/blender/blender_python.cpp index 6c3b137fd52..9600340a1f3 100644 --- a/intern/cycles/blender/blender_python.cpp +++ b/intern/cycles/blender/blender_python.cpp @@ -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); } |