Blender Git Loki
Git Commits -> Revision 78978dc
Revision 78978dc by Lukas Toenne (master) October 6, 2012, 16:28 (GMT) |
Fix for a case of 'static initialization fiasco' with OSL closure variables. The parameter lists are using OIIO::TypeDesc static standards, which are also static variables. With static OSL libraries these are not initialized when the closure parameter lists are initialized, so OSL rejects the closure types. Putting static initialization into functions works just as well, but ensures the OIIO::TypeDesc access is delayed until initialization is complete. |
Commit Details:
Full Hash: 78978dcd805af2db50478fcba7fdf56d3fbca2ec
SVN Revision: 51117
Parent Commit: 2ecb478
Lines Changed: +264, -173
17 Modified Paths:
/intern/cycles/kernel/osl/background.cpp (+16, -7) (Diff)
/intern/cycles/kernel/osl/bsdf_ashikhmin_velvet.cpp (+10, -6) (Diff)
/intern/cycles/kernel/osl/bsdf_diffuse.cpp (+19, -11) (Diff)
/intern/cycles/kernel/osl/bsdf_microfacet.cpp (+45, -29) (Diff)
/intern/cycles/kernel/osl/bsdf_oren_nayar.cpp (+10, -6) (Diff)
/intern/cycles/kernel/osl/bsdf_phong.cpp (+22, -12) (Diff)
/intern/cycles/kernel/osl/bsdf_reflection.cpp (+9, -5) (Diff)
/intern/cycles/kernel/osl/bsdf_refraction.cpp (+10, -6) (Diff)
/intern/cycles/kernel/osl/bsdf_transparent.cpp (+8, -4) (Diff)
/intern/cycles/kernel/osl/bsdf_ward.cpp (+12, -8) (Diff)
/intern/cycles/kernel/osl/bsdf_westin.cpp (+21, -13) (Diff)
/intern/cycles/kernel/osl/bssrdf.cpp (+9, -5) (Diff)
/intern/cycles/kernel/osl/debug.cpp (+9, -5) (Diff)
/intern/cycles/kernel/osl/emissive.cpp (+8, -4) (Diff)
/intern/cycles/kernel/osl/osl_closures.cpp (+22, -22) (Diff)
/intern/cycles/kernel/osl/osl_closures.h (+22, -22) (Diff)
/intern/cycles/kernel/osl/vol_subsurface.cpp (+12, -8) (Diff)
/intern/cycles/kernel/osl/bsdf_ashikhmin_velvet.cpp (+10, -6) (Diff)
/intern/cycles/kernel/osl/bsdf_diffuse.cpp (+19, -11) (Diff)
/intern/cycles/kernel/osl/bsdf_microfacet.cpp (+45, -29) (Diff)
/intern/cycles/kernel/osl/bsdf_oren_nayar.cpp (+10, -6) (Diff)
/intern/cycles/kernel/osl/bsdf_phong.cpp (+22, -12) (Diff)
/intern/cycles/kernel/osl/bsdf_reflection.cpp (+9, -5) (Diff)
/intern/cycles/kernel/osl/bsdf_refraction.cpp (+10, -6) (Diff)
/intern/cycles/kernel/osl/bsdf_transparent.cpp (+8, -4) (Diff)
/intern/cycles/kernel/osl/bsdf_ward.cpp (+12, -8) (Diff)
/intern/cycles/kernel/osl/bsdf_westin.cpp (+21, -13) (Diff)
/intern/cycles/kernel/osl/bssrdf.cpp (+9, -5) (Diff)
/intern/cycles/kernel/osl/debug.cpp (+9, -5) (Diff)
/intern/cycles/kernel/osl/emissive.cpp (+8, -4) (Diff)
/intern/cycles/kernel/osl/osl_closures.cpp (+22, -22) (Diff)
/intern/cycles/kernel/osl/osl_closures.h (+22, -22) (Diff)
/intern/cycles/kernel/osl/vol_subsurface.cpp (+12, -8) (Diff)