Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2013-06-11 00:47:58 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2013-06-11 00:47:58 +0400
commit2213b92e4818f4308adc49b9dafda0986127f270 (patch)
treeb366b92618231a8b4628a2cca48ebd2291c6d612 /intern/cycles/blender/blender_python.cpp
parent9d3ad07f1417fdc959ee3d3e86a7bff1c2ee6d80 (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.cpp20
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);
}