diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-12-01 23:15:05 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-12-01 23:15:05 +0400 |
commit | 7c0a0bae79bb8f842a575fe83975c6d34d73c64a (patch) | |
tree | 844857e85903601f60a083d767d6317f3006d31f /intern/cycles/render/osl.cpp | |
parent | 807fd448a557fbacb70fcd9b5cae76529fdb9b80 (diff) |
Fix #33375: OSL geom:trianglevertices gave wrong coordinates for static BVH.
Also some simple OSL optimization, passing thread data pointer directly instead
of via thread local storage, and creating ustrings for attribute lookup.
Diffstat (limited to 'intern/cycles/render/osl.cpp')
-rw-r--r-- | intern/cycles/render/osl.cpp | 14 |
1 files changed, 1 insertions, 13 deletions
diff --git a/intern/cycles/render/osl.cpp b/intern/cycles/render/osl.cpp index 2ec7e3d3775..e4ee40d881e 100644 --- a/intern/cycles/render/osl.cpp +++ b/intern/cycles/render/osl.cpp @@ -45,8 +45,6 @@ CCL_NAMESPACE_BEGIN OSLShaderManager::OSLShaderManager() { - thread_data_initialized = false; - services = new OSLRenderServices(); shading_system_init(); @@ -103,11 +101,6 @@ void OSLShaderManager::device_update(Device *device, DeviceScene *dscene, Scene scene->image_manager->set_osl_texture_system((void*)ts); device_update_common(device, dscene, scene, progress); - - if(!thread_data_initialized) { - og->thread_data_init(); - thread_data_initialized = true; - } } void OSLShaderManager::device_free(Device *device, DeviceScene *dscene) @@ -125,11 +118,6 @@ void OSLShaderManager::device_free(Device *device, DeviceScene *dscene) og->volume_state.clear(); og->displacement_state.clear(); og->background_state.reset(); - - if(thread_data_initialized) { - og->thread_data_free(); - thread_data_initialized = false; - } } void OSLShaderManager::texture_system_init() @@ -170,7 +158,7 @@ void OSLShaderManager::shading_system_init() const int nraytypes = sizeof(raytypes)/sizeof(raytypes[0]); ss->attribute("raytypes", TypeDesc(TypeDesc::STRING, nraytypes), raytypes); - OSLShader::register_closures(ss); + OSLShader::register_closures((OSLShadingSystem*)ss); loaded_shaders.clear(); } |