5#include <OSL/oslexec.h>
17void OSLGlobals::thread_init(
KernelGlobalsCPU *kg, OSLGlobals *osl_globals,
const int thread_index)
20 if (!osl_globals->use) {
26 kg->osl = osl_globals;
28 OSL::ShadingSystem *ss = kg->osl->ss;
29 OSLThreadData *tdata =
new OSLThreadData();
31 memset((
void *)&tdata->globals, 0,
sizeof(OSL::ShaderGlobals));
32 tdata->globals.tracedata = &tdata->tracedata;
33 tdata->osl_thread_info = ss->create_thread_info();
34 tdata->context = ss->get_context(tdata->osl_thread_info);
36 tdata->oiio_thread_info = osl_globals->ts->get_perthread_info();
38 kg->osl_ss = (OSLShadingSystem *)ss;
39 kg->osl_tdata = tdata;
40 kg->osl_thread_index = thread_index;
48 OSL::ShadingSystem *ss = (OSL::ShadingSystem *)kg->osl_ss;
49 OSLThreadData *tdata = kg->osl_tdata;
50 ss->release_context(tdata->context);
52 ss->destroy_thread_info(tdata->osl_thread_info);
#define CCL_NAMESPACE_END