diff options
Diffstat (limited to 'intern/cycles/render/osl.cpp')
-rw-r--r-- | intern/cycles/render/osl.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/intern/cycles/render/osl.cpp b/intern/cycles/render/osl.cpp index 04af9b48280..dbd6b0ac9d9 100644 --- a/intern/cycles/render/osl.cpp +++ b/intern/cycles/render/osl.cpp @@ -101,8 +101,9 @@ void OSLShaderManager::device_update(Device *device, DeviceScene *dscene, Scene /* setup shader engine */ og->ss = ss; + og->services = services; int background_id = scene->shader_manager->get_shader_id(scene->default_background); - og->background_state = og->surface_state[background_id]; + og->background_state = og->surface_state[background_id & SHADER_MASK]; og->use = true; tls_create(OSLGlobals::ThreadData, og->thread_data); @@ -199,19 +200,19 @@ void OSLCompiler::add(ShaderNode *node, const char *name) switch(input->type) { case SHADER_SOCKET_COLOR: - parameter_color(input->name, input->value); + parameter_color(compatible_name(input->name).c_str(), input->value); break; case SHADER_SOCKET_POINT: - parameter_point(input->name, input->value); + parameter_point(compatible_name(input->name).c_str(), input->value); break; case SHADER_SOCKET_VECTOR: - parameter_vector(input->name, input->value); + parameter_vector(compatible_name(input->name).c_str(), input->value); break; case SHADER_SOCKET_NORMAL: - parameter_normal(input->name, input->value); + parameter_normal(compatible_name(input->name).c_str(), input->value); break; case SHADER_SOCKET_FLOAT: - parameter(input->name, input->value.x); + parameter(compatible_name(input->name).c_str(), input->value.x); break; case SHADER_SOCKET_CLOSURE: break; |